2010-01-19 18 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"; 

    } 
} 

它添加細節到對象工作的罰款。我得到男性爲'M',女性爲'F'。我有一個對象具有在M和F之間切換的值。但是,在UI中,不顯示開關的藍色。對象中的值是正確的,但不顯示開關的ON狀態(藍色)。如何在編輯功能中處理UICustomSwitch?

回答

0

你需要調用– setOn:animated:交換機的認可價值,當你初始化或者當從數據價值的變化。

如果交換機是可見的,但是灰色和無效的,你需要將其設置爲啓用。