2011-11-25 3 views
5

내 .storyboard 파일에 "Movie Title"이라는 초기 텍스트가있는 UILabel을 만들었습니다. 그 UILabel을 ViewController 파일에 정의 된 속성에 연결했습니다. 어떤 이유로 시뮬레이터를 실행할 때 텍스트가 UI에 표시되지 않습니다. 비슷한 질문을 보았지만 도움이되는 반응을 보지 못했습니다.UILabel 텍스트가 표시되지 않지만 "텍스트"값이 업데이트 중임 (콘솔에 표시됨)

NSLog(@"movie details title in Movie object: %@", _movie.name); 
self.movieTitle = [[UILabel alloc] init]; 
[self.movieTitle setText:self.movie.name]; 
NSLog(@"movie details title in UILabel.text: %@",self.movieTitle.text); 
: 다음 다음을 수행하는 코드가

@synthesize movieTitle; 

내 .H 파일에서 다음 속성을

@property (strong, nonatomic) IBOutlet UILabel * movieTitle; 

그것은 내하는 .m 파일에서 합성 것있다

콘솔에서 다음을 출력합니다.

movie details title in Movie object: Transformers 
movie details title in UILabel.text: Transformers 

답변

3

movieTitle 만약 그런 다음 다른 인스턴스를 생성 할 안되는 인터페이스 빌더 UILabel;에 연결되어 :

self.movieTitle = [[UILabel alloc] init]; 

당신은 GUI의 UILabel 안 하나의 텍스트를 설정합니다.

그냥, 그 줄을 삭제 아래 참조 :

NSLog(@"movie details title in Movie object: %@", _movie.name); 
[self.movieTitle setText:self.movie.name]; 
NSLog(@"movie details title in UILabel.text: %@",self.movieTitle.text); 
6

는 메인 스레드에서 text 속성을 설정되어 있는지 확인합니다. 그렇지 않으면 값을 업데이트하지만 레이블을 다시 그려 내지 않습니다. 모든 UIKit 요소는 주 스레드에서만 업데이트해야합니다.

Interface Builder에서 IBOutlet에 연결하지 않는 경우 두 번째 UILabel 만 만들어야합니다.

+0

비슷한 문제에 대한 완벽한 대답. 배경 대기열에 텍스트를 설정하고있었습니다. –

+0

생성자에서 값을 설정하고 UI가 업데이트되지 않았습니다. 당신의 해결책은 그것을 고쳤지 만 콘솔에 경고 나 아무것도없는 이유가 궁금합니다 ... – VSG24

2

이 답변은 도움이되지 않을 수도 있지만 도움이됩니다.

제 경우에는 로그인보기 컨트롤러 하단에 내 앱의 버전을 표시하는 라벨을 붙였습니다. 앱 테스트를 실행하면 라벨이 표시되지 않습니다. 로그인 .xib 파일은 Retina 4 전체 화면을 대상으로하지만 배포 대상 (응용 프로그램 요약)은 5.0이므로 앱이 실행될 때 (시뮬레이터에서) 실제로 iPhone 5.0 시뮬레이터가 실행되므로 3.5 "의 화면이며 레이블이보기의 맨 아래에 있기 때문에 3.5"화면의보기 영역 밖에 있습니다. 이 문제를 해결하려면 레이블의 자동 크기 조정을 변경하기 만하면됩니다.

희망이 도움이됩니다.

관련 문제