【发布时间】:2011-08-20 21:17:16
【问题描述】:
我正在尝试创建一个具有内置聊天功能的应用。我试图让它与 Messages 应用程序类似地工作,但有一个主要区别。我想添加一个 UISegmentedControl 来手动切换您在对话中的哪个人,而不是 MMS 的相机图标。我让它工作得很好,除非你在交换机上更改身份,它会更改之前在聊天中所说的所有内容的身份。我真的坚持这一点,任何帮助将不胜感激。
NSString *text = [messages objectAtIndex:indexPath.row];
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:14.0] constrainedToSize:CGSizeMake(240.0f, 480.0f) lineBreakMode:UILineBreakModeWordWrap];
UIImage *balloon;
if(segmentedControl.selectedSegmentIndex == 0) {
balloonView.frame = CGRectMake(320.0f - (size.width + 28.0f), 2.0f, size.width + 28.0f, size.height + 15.0f);
balloon = [[UIImage imageNamed:@"green.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15];
label.frame = CGRectMake(307.0f - (size.width + 5.0f), 8.0f, size.width + 5.0f, size.height);
}
else if(segmentedControl.selectedSegmentIndex == 1) {
balloonView.frame = CGRectMake(0.0, 2.0, size.width + 28, size.height + 15);
balloon = [[UIImage imageNamed:@"grey.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15];
label.frame = CGRectMake(16, 8, size.width + 5, size.height);
}
balloonView.image = balloon;
label.text = text;
return cell;
}
-(IBAction) segmentedControlIndexChanged {
switch (self.segmentedControl.selectedSegmentIndex)
{
case 0: (self.segmentedControl.selectedSegmentIndex == 0);
case 1: (self.segmentedControl.selectedSegmentIndex == 1);
break;
default:
break;
}
}
总的来说,我要问的是如何修改它,以便当我切换 UISegmentedControl 时,它会更改仅在开关处于此状态时键入的消息。 提前谢谢!
【问题讨论】:
-
您的分段控件是否与进行 UI 切换的方法挂钩?我认为您需要做的就是将一个方法连接到连接下笔尖中的 valueChanged 选项,当段更改时,该方法将被调用,您可以更新 UI。希望有帮助!
标签: iphone objective-c cocoa-touch chat uisegmentedcontrol