Подтвердить что ты не робот

Как отключить часть управления Uisegment?

Ниже приведен код для 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

4b9b3361

Ответ 1

Используйте способ setEnabled:forSegmentAtIndex: для включения и отключения сегментов.

[segmentedControl setEnabled:NO forSegmentAtIndex:0];

если вы хотите отключить первый сегмент.

Ответ 2

Для тех, кто может быть заинтересован в быстрой команде:

Swift 2.3

segmentedControl.setEnabled(false , forSegmentAtIndex: 0);

Swift 3

self.segmentedControl.setEnabled(false, forSegmentAt: 0);