6

tengo el siguiente UISegmentedControl, que quiero estar deshabilitado:¿Cómo puedo desactivar un UISegmentedControl?

-(void)displayCheckMark 
{ 
    titleSegmentedControl = [[UISegmentedControl alloc] initWithItems:nil]; 
    [titleSegmentedControl insertSegmentWithImage:[UIImage imageNamed:@"symbolbg.png"] atIndex:0 animated:YES]; 
    [titleSegmentedControl insertSegmentWithImage:[UIImage imageNamed:@"inwatchlist.png"] atIndex:1 animated:YES]; 
    [titleSegmentedControl addTarget:self action:@selector(titleBarButtonChanged:)forControlEvents:UIControlEventValueChanged]; 
    titleSegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
    titleSegmentedControl.frame = CGRectMake(100,0,100,30); 
    titleSegmentedControl.momentary = YES; 
    titleSegmentedControl.tintColor = [UIColor blackColor]; 
    self.navigationItem.titleView = titleSegmentedControl; 

    [titleSegmentedControl setWidth:60 forSegmentAtIndex:0]; 
    [titleSegmentedControl setTitle:symbol forSegmentAtIndex:0]; 
    [titleSegmentedControl setWidth:30 forSegmentAtIndex:1]; 
    [titleSegmentedControl setEnabled:NO]; 
} 

no tengo que activar en cualquier parte del código. Sin embargo, aún puedo hacer clic en él, y llevará a cabo la acción en titleBarButtonChanged:

¿Cómo puedo asegurarme de que no se puede hacer clic en él?

Respuesta

18

Trate de usar:

- (void)setEnabled:(BOOL)enabled forSegmentAtIndex:(NSUInteger)segment; 

o

titleSegmentedControl.userInteractionEnabled = NO; 
+0

Desactivación de segmentos individuales de obras. – DataGraham

3

Dentro titleBarButtonChanged:(id)sender complemento:

if(!sender.enabled) return; 
Cuestiones relacionadas