2011-06-15 6 views
41

siguiente es el código para UISegmentedControlcómo desactivar parte del control de 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];  

y

- (void)segmentAction:(id)sender{ 

    if([sender selectedSegmentIndex] == 0) 
    { 
     button.hidden=NO; 

    } 
    else 
    { 
     [self dListMethod ]; 

    } 
} 

En la sección si() Quiero desactivar selectedSegmentIndex==0 y activar cuando button.hidden=YES

+0

Usted no quiere que la línea ' if ([sender selectedSegmentIndex] == 0) 'para ejecutar si' button.hidden = NO'? – EmptyStack

Respuesta

128

Uso setEnabled:forSegmentAtIndex: método para activar y desactivar el segmentos.

[segmentedControl setEnabled:NO forSegmentAtIndex:0]; 

si quiere deshabilitar el primer segmento.

+0

muchas gracias por su ayuda – Pooja

+0

Muchas gracias me ayuda – Soniya

11

Para aquellos que pueden estar interesados ​​en el comando rápida:

Swift 2,3

segmentedControl.setEnabled(false , forSegmentAtIndex: 0); 

Swift 3

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