【发布时间】:2011-11-23 18:17:51
【问题描述】:
我有一个带有 UISegmentControl 'SegA'、'SegB' 和 'SegC' 的视图
每个段都有不同的视图,带有以编程方式添加的标签和文本字段。
当我从 SegA 切换到 SegB 时,SegA 的视图与 SegB 的视图重叠
【问题讨论】:
我有一个带有 UISegmentControl 'SegA'、'SegB' 和 'SegC' 的视图
每个段都有不同的视图,带有以编程方式添加的标签和文本字段。
当我从 SegA 切换到 SegB 时,SegA 的视图与 SegB 的视图重叠
【问题讨论】:
例如,您有 3 个视图和各自的 3 个段控件,您需要将这些视图添加到主视图控制器上作为子视图,并通过代码为它们设置框架或使用 Interface Builder 将它们添加到 ViewController 上。
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubView:view1];
[self.view addSubView:view2];
[self.view addSubView:view3];
[view1 setHidden:NO];
[view2 setHidden:YES];
[view3 setHidden:YES];
[mySegmentControl addTarget:self action:@selector(valuedChanged:) forControlEvents:UIControlEventValueChanged];
}
//segment value changed
-(IBAction)valuedChanged:(id)sender{
UISegmentedControl* tempSC=(UISegmentedControl *)sender;
if(tempSC.selectedSegmentIndex==0){
[view1 setHidden:NO];
[view2 setHidden:YES];
[view3 setHidden:YES];
}
else if(tempSC.selectedSegmentIndex==1){
[view1 setHidden:YES];
[view2 setHidden:NO];
[view3 setHidden:YES];
}
else if(tempSC.selectedSegmentIndex==2){
[view1 setHidden:YES];
[view2 setHidden:YES];
[view3 setHidden:NO];
}
}
假设 view1、view2 和 view3 是 UIView 类的实例。
【讨论】: