2011-06-15 80 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);