2010-01-19 3 views
0
@interface UICustomSwitch : UISwitch 
{ 

} 
-(void)setLeftLabelText:(NSString *)labelText; 
-(void)setRightLabelText:(NSString *)labelText; 
@end 
@implementation UICustomSwitch 
-(UIView *)slider 
{ 
    return [[self subviews ] lastObject]; 
} 
-(UIView *)textHolder 
{ 
    return [[[self slider] subviews]objectAtIndex:2]; 
} 
-(UILabel *)leftLabel 
{ 
    return [[[self textHolder] subviews]objectAtIndex:0]; 

} 
-(UILabel *)rightLabel 
{ 
    return [[[self textHolder] subviews]objectAtIndex:1]; 

} 
-(void)setLeftLabelText:(NSString *)labelText; 
{ 
    [[self leftLabel] setText:labelText]; 
} 
-(void)setRightLabelText:(NSString *)labelText 
{ 
    [[self rightLabel]setText:labelText]; 

} 
@end 

switchView=[[[UICustomSwitch alloc]initWithFrame:CGRectMake(200,5,90,30)]autorelease]; 
     [switchView setLeftLabelText:@"F"]; 
     [switchView setRightLabelText:@"M"]; 
     [switchView addTarget:self action:@selector(genderAction:) forControlEvents:UIControlEventValueChanged]; 

-(void)genderAction:(id)sender 
{ 
    if([Object.gender isEqualToString:@"F"]) 
    { 
     [email protected]"M"; 


    } 
    else 
    { 
     [email protected]"F"; 

    } 
} 

Он отлично подходит для добавления деталей в объект. Я получаю Male для 'M' и Female для 'F'. У меня есть один объект, который имеет значение, которое переключается между M и F. Однако в пользовательском интерфейсе синий цвет переключателя не отображается. Значение в объекте верное, но состояние ON (синий цвет) переключателя не отображается.Как работать с UICustomSwitch в функциональности редактирования?

ответ

0

Вы должны позвонить – setOn:animated: для переключателя для значения апробата, когда вы его инициализируете или когда значение изменяется от данных.

Если переключатель виден, но неактивен и неактивен, вам необходимо включить его.

Смежные вопросы