2016-12-26 1 views
1
self.name.font = [UIFont fontWithName:@"OpenSans" size:17.0]; 
self.name.textColor = [UIColor redColor]; 

'이름'유형 UILabel의이다를 업데이트 할 시간이 걸립니다. fontcolorUILabel으로 설정합니다. 나는 페이지를 열 자마자 color 붉은 색을 볼 수있다. (내 viewcontroller). 그러나 글꼴은 처음에 일반 글꼴 size 14이고 업데이트하는 데 걸립니다. 언젠가 페이지에 머무르면 글꼴이 자동으로 새로운 size 17으로 업데이트됩니다.UILabel의 글꼴

2 속성의 업데이트가 지연되는 이유는 무엇입니까?

+0

. 그것을 제거하십시오. – SNarula

+0

어디에서이 코드를 작성합니까? (어떤 방법으로). 스토리 보드/xib 파일에서 해당 레이블에 대해 설정 한 내용은 무엇입니까? – Shreyank

+0

@SNarula 내 .xib 파일에서 UILabel 'name'과 관련된 정적 텍스트를 제거했습니다. 아직도 우울증에 걸리는 시간이 걸립니다. –

답변

2

아마도 메인 스레드 외부에서 ui 요소를 업데이트하고있을 것입니다.

모든 UI 요소는 주 스레드에서 업데이트해야합니다. 그렇게하지 않으면 일관성없는 UI, 지연된 업데이트 및 때로는 충돌이 발생할 수 있습니다.

메인 스레드에 있지 않고 UI 요소를 업데이트하려는 경우 두 번째 및 세 번째 대답 (허용되지 않음)을 확인하려면 iOS - Ensure execution on main thread을 확인하십시오.

+0

내 의견을 dispatch_async (dispatch_get_main_queue(),^{}) 안에 넣으십시오. 완벽하게 일했습니다! 감사! –

+0

실제로 [[NSOperationQueue mainQueue] addOperationWithBlock :^{ // 여기에 코드가 포함됩니다. NSLog (@ "Main Thread Code"); }]; 왜냐하면 스택 오버 플로우 포스트 –

+0

에 문서화 된 것과 같은 이전 접근법과 관련된 몇 가지 문제점이 있기 때문에, 메인 큐에 이미 있더라도'dispatch_async (dispatch_get_main_queue(),^{});;를 호출해도 아무런 문제가 없습니다 . – Rikh

0

글꼴 파일이 존재하고 글꼴 이름이 @ "OpenSans"와 같음을 확인하십시오. 대문자입니다.

이 때문에 글꼴

당신은에 의해 응용 프로그램의 모든 글꼴을 확인 할 수의 이름이 일치 될 수있다 : 당신은 당신의 스토리 보드 파일에 정적 텍스트 추가 한

NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]]; 
NSArray *fontNames; 
NSInteger indFamily, indFont; 
for (indFamily=0; indFamily<[familyNames count]; ++indFamily) 
{ 
    NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]); 
    fontNames = [[NSArray alloc] initWithArray: 
       [UIFont fontNamesForFamilyName: 
        [familyNames objectAtIndex:indFamily]]]; 
    for (indFont=0; indFont<[fontNames count]; ++indFont) 
    { 
     NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]); 
    } 
} 
관련 문제