2010-12-15 4 views
1

Interface Builder를 통해 사용자 정의 글꼴을 적용 할 수없는 것처럼 보였으므로 새로운 UILabel 파생 클래스를 정의하고 - (id) init 메소드를 사용자 정의로 설정하려고했습니다 글꼴 사용하고 싶습니다 : 런타임에 사용 된 글꼴이 여전히 'Helvetica'(내 사용자 지정 글꼴은 'african'이고 코드를 통해 설정된 경우 작동 함)로 예상되는 결과로 이어지지는 않습니다.사용자 정의 글꼴을 사용하는 iPhone의 새로운 레이블 클래스

:

NSLog(@"Before FONT NAME IS ------------> %@", myLabel.font.fontName); 
UIFont *font = [UIFont fontWithName:@"african" size:10]; 
[myLabel setFont:font]; 
myLabel.text = @"HELLO!"; 
NSLog(@"After FONT NAME IS ------------> %@", myLabel.font.fontName); 

인쇄물은 다음과 같다 : 따라서

- (id)init { 
    UIFont *font = [UIFont fontWithName:@"african" size:10]; 
    [self setFont:font];  

    return self; 
} 

나는 현재 코드를 통해 폰트를 강제로 문제를 해결 해요 : 여기

내 UILabel의 유래 조각입니다
Before FONT NAME IS ------------> Helvetica 
After FONT NAME IS ------------> African 

init 메소드에서 설정 한 기본 글꼴이 덮어 쓰여진 것처럼 보입니다. 그거야? 또한, 아마도 : 당신이 값이없는 것이다 "자기"와 같은 당신의 init 함수를 사용하는 경우

+0

사실 인터페이스 작성기에서 글꼴을 변경할 수 있습니다. 글꼴 메뉴 -> 글꼴 표시로 이동하십시오. 그런 다음 레이블을 선택하고 새 글꼴을 선택하십시오. – ughoavgfhw

+0

나는 이것을 시험해 보았고 새로운 글꼴을 추가하고 IB에서 사용할 수 있다고하더라도 런타임에는 여전히 잘못된 글꼴을 가지고있다. –

답변

1

... 모든 init이 기능은 또한 당신이 "initWithFrame"를 무시합니다 있는지 확인이

- (id)init { 
    self = [super init]; 
    if (self) { 
     // Your init code here 
    } 
    return self; 
} 

같이해야 "initWithCoder :"를 IB에서 사용하려면.

+0

initWithCoder : 실제로 일을했습니다. 고마워요. –

관련 문제