Ответ 1
Используйте способ setEnabled:forSegmentAtIndex:
для включения и отключения сегментов.
[segmentedControl setEnabled:NO forSegmentAtIndex:0];
если вы хотите отключить первый сегмент.
Ниже приведен код для UISegmentedControl
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects: [UIImage imageNamed:@"down.png"], [UIImage imageNamed:@"dList.png"], nil]];
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
segmentedControl.frame = CGRectMake(0, 0, 90, 65);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.momentary = YES;
UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
[segmentedControl release];
self.navigationItem.rightBarButtonItem = segmentBarItem;
[segmentBarItem release];
и
- (void)segmentAction:(id)sender{
if([sender selectedSegmentIndex] == 0)
{
button.hidden=NO;
}
else
{
[self dListMethod ];
}
}
В секции if() я хочу отключить selectedSegmentIndex==0
и включить, когда button.hidden=YES
Используйте способ setEnabled:forSegmentAtIndex:
для включения и отключения сегментов.
[segmentedControl setEnabled:NO forSegmentAtIndex:0];
если вы хотите отключить первый сегмент.
Для тех, кто может быть заинтересован в быстрой команде:
Swift 2.3
segmentedControl.setEnabled(false , forSegmentAtIndex: 0);
Swift 3
self.segmentedControl.setEnabled(false, forSegmentAt: 0);