2014-12-03 3 views
1

사용자 정의 단추 AdvisorButton.h가 있습니다. init 내에서 단추 글꼴을 설정했지만 스토리 보드 설정에 의해 재정의됩니다. 버튼.스토리 보드에 설정된 값으로 덮어 쓰지 않고 사용자 정의 단추 글꼴을 설정하십시오.

을 Heres 구현 :

-(id)initWithFrame:(CGRect)frame 
{ 
    if ((self = [super initWithFrame:frame])) 
    { 
     [self initializationCodeMethod]; 
    } 
    return self; 
} 

-(id)initWithCoder:(NSCoder *)aDecoder 
{ 
    if ((self = [super initWithCoder:aDecoder])) 
    { 
     [self initializationCodeMethod]; 
    } 
    return self; 
} 

-(id)initializationCodeMethod 
{ 

    if(self.tag == 1) 
    { 
     UIFont *theFont = [UIFont fontWithName:@"DINOT-Light" size:20]; 
     [self.titleLabel setFont:theFont]; 
    } 
    else 
    { 
     UIFont *theFont = [UIFont fontWithName:@"VWHeadlineOT-Book" size:20]; 
     [self.titleLabel setFont:theFont]; 
    } 
    return self; 
} 

글꼴 오브젝트가 제대로 초기화하고 내가 그들을 밖으로 인쇄 할 경우 등

문제는 그들이 스토리 보드에 정의되어 값이 나는 피하려고 보기 컨트롤러의 모든 버튼/레이블/텍스트 필드를 참조하여 글꼴을 설정합니다.

저는 init 함수 호출 후에 스토리 보드 값이 설정되고 있다고 생각합니까?

이 문제에 대한 통찰력이 유용 할 것입니다.

편집 : 설정하려고하기 전에 글꼴을 확인하고 스토리 보드에서 기본 글꼴로 설정했음을 유의하십시오.

그런 다음 설정이되어 있고 여전히 똑같은지 확인한 다음 다시 확인하십시오.

답변

0

해결됨

텍스트가 나옵니다. 스토리 보드의 오브젝트에 대한 변경 사항은 시스템 기본값이 아닌 다른 모든 것입니다. 변경 사항은 스토리 보드 설정에 의해 무시됩니다.

필자는 개인적으로 밑줄 등이있는 텍스트를 기인했으며 업데이트하지 않았습니다.

속성을 제거했지만 default가 아닌 다른 글꼴을 남겨 두었고 글꼴을 바꾸지 못했습니다.

따라서 기본값으로 다시 설정하면 글꼴을 바꿀 수 있습니다.

1

확인 당신은 또한 사용자 정의 버튼 클래스에서

- (void)drawRect:(CGRect)rect 
{ 
    if ((self = [super initWithCoder:aDecoder])) 
    { 
     [self initializationCodeMethod]; 
    } 
    return self; 
} 

에 설정 글꼴을 시도 스토리 보드 Refer the image

에서 해당 버튼 클래스에 대한 신원 관리자 섹션에서 사용자 정의 버튼 클래스 이름을 추가했는지 확인

+1

AdvisorButton 클래스가 있습니다. –

+0

각'drawRect'에서'self'를 재 할당하고 처음부터 다시 만드시겠습니까? 그것은 나에게 나쁜 생각처럼 들린다. – Cyrille

0

NSAttributedString은 하나 이상의 글꼴 자체를 포함합니다. 글꼴을 변경하려면 원하는 글꼴로 NSAttributedString을 다시 작성하거나 제거하고 UILabel.text을 직접 사용해야합니다. 이 경우 UILabel.font이 효과가 있습니다.

부작용으로 글꼴 세트없이 속성이 지정된 문자열을 만들 수 있습니다.이 경우 아마도 UILabel.font이 효과가 있습니다. 이 문제는 UIColor.textColor으로 나타났습니다.

0

당신은 아래의 Info.plist에 글꼴을 추가 한 : - 0 아이템 - "응용 프로그램에서 제공하는 글꼴"yourfontname.OTF

은 어떻게 든 스토리 보드이 필요하지 않습니다,하지만 때 나는 그것을 필요 프로그래밍 방식으로 글꼴을 변경하려고했습니다.