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"; 

    } 
} 

세부 정보를 개체에 추가하는 데는 문제가 없습니다. 나는 'M'의 경우 남성을, 'F'의 경우 여성을 얻고 있습니다. 나는 M과 F 사이를 전환하는 값을 가진 하나의 객체를 가진다. 그러나 UI에서는 스위치의 파란색 색상이 표시되지 않습니다. 개체의 값은 올바르지 만 스위치의 ON 상태 (파란색)는 표시되지 않습니다.편집 기능에서 UICustomSwitch를 처리하는 방법은 무엇입니까?

답변

0

초기화 할 때나 데이터에서 값이 변경 될 때 approbate 값을 전환하려면 – setOn:animated:으로 전화해야합니다.

스위치가 보이지만 회색으로 표시되고 비활성 상태이면 스위치를 활성화로 설정해야합니다.

관련 문제