2011-06-15 73 views
41

以下为UISegmentedControl如何禁用部分的uisegment控件?

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 ]; 

    } 
} 

的代码我想禁用selectedSegmentIndex==0并启用时button.hidden=YES

+0

你不想行' if([sender selectedSegmentIndex] == 0)'如果'button.hidden = NO'执行? – EmptyStack 2011-06-15 10:03:44

回答

128

使用setEnabled:forSegmentAtIndex:方法来启用和禁用的,如果()部分段。

[segmentedControl setEnabled:NO forSegmentAtIndex:0]; 

如果您想禁用第一个段。

+0

非常感谢您的帮助 – Pooja 2011-06-15 11:04:40

+0

非常感谢您帮助我 – Soniya 2012-03-23 05:57:51

11

对于那些谁可能是感兴趣的迅速命令:

雨燕2.3

segmentedControl.setEnabled(false , forSegmentAtIndex: 0); 

斯威夫特3

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