Представления uisegmentcontrol для iPhone перекрываются

У меня есть представление с UISegmentControl «SegA», «SegB» и «SegC».

Каждый сегмент имеет разное представление с метками и текстовыми полями, которые были добавлены программно.

Всякий раз, когда я переключаюсь с SegA на SegB, представление SegA перекрывается с представлением SegB


person duk    schedule 23.11.2011    source источник


Ответы (1)


например, у вас есть 3 представления с соответствующими элементами управления 3 сегментами. Вам нужно добавить эти представления в контроллер основного представления в качестве подпредставлений, а также установить для них фрейм с помощью кода или добавить их в ViewController с помощью Interface Builder.

// 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.

person Mayur Birari    schedule 23.11.2011