How to disable part of UISegmentedControl?

白昼怎懂夜的黑 提交于 2019-12-20 10:15:14

问题


Following is the code for 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];    

and

- (void)segmentAction:(id)sender{
    if([sender selectedSegmentIndex] == 0)
    {
        button.hidden=NO;
    }
    else
    {
        [self dListMethod ];
    }
}

In the if() section I want to disable selectedSegmentIndex==0 and enable when button.hidden=YES


回答1:


Use setEnabled:forSegmentAtIndex: method to enable and disable the segments.

[segmentedControl setEnabled:NO forSegmentAtIndex:0];

if you want to disable the first segment.




回答2:


For those who can be interested in the swift command:

Swift 2.3

segmentedControl.setEnabled(false , forSegmentAtIndex: 0);

Swift 3

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


来源:https://stackoverflow.com/questions/6355968/how-to-disable-part-of-uisegmentedcontrol

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!