如何禁用UISegmentedControl的一部分?

57
以下是 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时启用。

你不想在 button.hidden = NO 的情况下执行 if([sender selectedSegmentIndex] == 0) 这一行代码吗? - EmptyStack
2个回答

152

使用setEnabled:forSegmentAtIndex:方法来启用或禁用分段控件的各个选项。

[segmentedControl setEnabled:NO forSegmentAtIndex:0];
如果你想禁用第一个段落。

28

对于那些可能对 swift 命令感兴趣的人:

Swift 2.3

segmentedControl.setEnabled(false , forSegmentAtIndex: 0);

Swift 3

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接