我有关于Nib和UISegmentedControls的最佳实践类型的问题。从UISegmentedControl更改视图
我有一个包含带3个按钮的UISegmentedControl的nib文件。切换时,每个窗口的主要部分都会显示不同的视图。
一切工作正常,但我怀疑我的方法是有缺陷的,并想知道如果有人可以建议我这样做的意思是做到这一点。
目前在NIB我有3个UIViews被覆盖在彼此的顶部,然后在.m文件我修改每个UIViews .hidden隐藏和显示一个我感兴趣的
- (IBAction)segmentAction:(id)sender
{
if([sender selectedSegmentIndex] == 0)
{
[self.view1 setHidden:NO];
[self.view2 setHidden:YES];
[self.view3 setHidden:YES];
}
else if([sender selectedSegmentIndex] == 1)
{
[self.view1 setHidden:YES];
[self.view2 setHidden:NO];
[self.view3 setHidden:YES];
}
else if([sender selectedSegmentIndex] == 2)
{
[self.view1 setHidden:YES];
[self.view2 setHidden:YES];
[self.view3 setHidden:NO];
}
}
一切都“有效”,但是nib文件是一种编辑的痛苦,因为您无法轻松“关闭”其他UIViews,因此我总是在画布上选择错误的元素。此外,IB在信息对话框中抱怨:“该视图与其兄弟姐妹之一重叠”。
我应该采取什么方法,因为我希望所有的视图都在InterfaceBuilder中进行布置。我应该有4个笔尖文件吗?如果是这样的话,我应该如何在segmentControl被按下时加载它们?你可以指示我的任何示例代码?
感谢
你能澄清你的意思吗?使3个独立的UIView对象,但不要将它们添加到视图层次结构。你的意思是'通过将每个视图从库拖动到标题为YourNib.nib或YourXib.xib的窗口来创建3个视图。 – 2014-11-18 15:33:20