2013-07-02 2 views
2

저는 앱에 많은 UILabel 요소가 있습니다. UIAppearance Proxy 객체를 사용하여 스타일을 쉽게 지정할 수있는 방법을 찾고 있습니다. 현재 나의 접근 방식은 [UILabelSubclass appearance] 호출하지만 액세스 할 수 있도록 UI_APPEARANCE_SELECTOR 데코레이터가있는 UILabel의 다른 하위 클래스를 만드는 것입니다. 참조 번호 herehere으로 사용중인 소스를 찾을 수 있습니다. 문제는 글꼴 크기를 설정하지 않고 스토리 보드에 정의 된 크기에만 의존하는 글꼴 패밀리입니다.UIAppearance 프록시를 사용하여 UILabel 스타일 지정하기

어떻게 이것을 서브 클래스에서 설정할 수 있습니까? 이 게시물에 대한

@interface UILabel (FontName) 

- (void)setFontName:(NSString *)name UI_APPEARANCE_SELECTOR; 

@end 


@implementation UILabel (FontName) 

- (void)setFontName:(NSString *)name { 
    self.font = [UIFont fontWithName:name size:self.font.pointSize]; 
} 

@end 

답변

1

나는 당신처럼 서브 클래스 뭔가를 시도 할 수 있다고 생각 Peter Steinberger (http://petersteinberger.com/) 나는 함께 일하는 것을 얻을 수 있었다 :

@interface UILabel (FontAppearance) 
@property (nonatomic, copy) UIFont *appearanceFont UI_APPEARANCE_SELECTOR; 
@end 


@implementation UILabel (FontAppearance) 
- (void)setAppearanceFont:(UIFont*)font 
{ 
    [self setFont:font]; 
} 

-(UIFont*)appearanceFont 
{ 
    return [self font]; 
} 
@end 
7

:

+0

이것은 훌륭한 해결책이기도합니다. 내가 구현 한 것에 조금 더 가깝기 때문에 나는 다른 하나를 표시했습니다. – Claus

+0

이 작동하지 않습니다 – JAHelia

+0

나는 나를 위해이 작품을 확인할 수 있습니다. 감사! – Emilio

1

감사합니다, 또한 블로그 게시물에서 : 다음은 간단한 UIAppearance 프록시와 함께 작동 카테고리의

UIFont *newFont = [UIFont fontWithName:@"YourFontName" size:self.font.pointSize]; 
self.font = newFont 
관련 문제