2011-12-01 2 views
0

아래 코드 (categorie)를 사용하여 작동하지 않는 코드를 변경했습니다.UISwitch의 텍스트를 iOS 5로 변경하는 방법은 무엇입니까?

코드는 : (원래의 코드는 iphone cookbook 8 장에서 가져온)

#import "UISwitch+Extended.h" 

@interface UISwitch (extended) 
- (void) setAlternateColors:(BOOL) boolean; 
@end 

@interface _UISwitchSlider : UISlider 
@end 

@implementation UISwitch (Extended) 

- (_UISwitchSlider *) slider { 
    return [[self subviews] lastObject]; 
} 
- (UIView *) textHolder { 
    return [[[self slider] subviews] objectAtIndex:1]; 
} 
- (UILabel *) leftLabel { 
    return [[[self textHolder] subviews] objectAtIndex:0]; 
} 
- (UILabel *) rightLabel { 
    return [[[self textHolder] subviews] objectAtIndex:1]; 
} 
- (void) setLeftLabelText: (NSString *) labelText { 
    [[self leftLabel] setText:labelText]; //error occurred here. 
} 
- (void) setRightLabelText: (NSString *) labelText { 
    [[self rightLabel] setText:labelText]; 
} 

어떤 생각하시기 바랍니다.

+3

개인보기 계층 구조에 의존하는 이유 중 가장 좋은 예는 끔찍한 생각입니다. 이것은 해킹이며 대부분의 해킹과 마찬가지로 변경되는 즉시 중단됩니다. – jrturton

답변

0

이 코드는 하위 뷰를 색인별로 액세스하며 새로운 iOS에서 변경되었을 수 있습니다. 스위치의 모든 하위보기를 인쇄하고 필요한 항목을 찾으십시오.

+0

나는 [[[self textHolder] subviews] objectAtIndex : 0] UIImageview를 반환한다. UIView ([[self textHolder] subviews) 안에는 UILabel이 없다. –

+0

아마도 더 어딘가, 어쩌면 그들은 텍스트 대신 이미지를 사용할 것이다. 당신은 어딘가에 그것을 확인하고 원하는 경우 변경할 수 있습니다. 죄송합니다. 정확한 해결책이 없습니다. – mifki

관련 문제