기존의 글에서 UILabel을 이용하여 컨텐츠를 보여주는 다양한 방법에 대해 이야기 하였습니다.
- 두줄 이상을 표시하기
- 문자열 크기에 맞추어 UILabel frame 크기 변경하기
하지만 위의 링크에서 두번째 글의 경우에는 특정한 상황에서 매우 비정상적인 결과를 보여줍니다.
방법을 찾다 보니 sizeWithFont 메서드가 문제가 있는 메서드이더군요.
다음의 방법을 사용하는것이 가장 확실한 방법인듯 합니다.
바로 sizeWithFont:constrainedToSize:lineBreakMode 를 사용하는 것인데요. 가장 좋은 결과를 보여주더군요.
constrainedToSize에서 정의한 크기가 최대 제한 사이즈가 되며 그것을 넘어가게 되면 자동으로 줄바꿈이 일어납니다.
출처 : http://theeye.pe.kr/334
- 두줄 이상을 표시하기
- 문자열 크기에 맞추어 UILabel frame 크기 변경하기
하지만 위의 링크에서 두번째 글의 경우에는 특정한 상황에서 매우 비정상적인 결과를 보여줍니다.
방법을 찾다 보니 sizeWithFont 메서드가 문제가 있는 메서드이더군요.
다음의 방법을 사용하는것이 가장 확실한 방법인듯 합니다.
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
NSString *string = @"I have a very beautiful girl-friend. but she is not love me after last weekend.\nI love her";
UIFont *stringFont = [UIFont boldSystemFontOfSize:15.0f];
CGSize stringSize = [string sizeWithFont:stringFont constrainedToSize:CGSizeMake(280.0f, 60.0f) lineBreakMode:UILineBreakModeWordWrap];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20.0f, 50.0f, stringSize.width, stringSize.height)];
[label setFont:stringFont];
[label setText:string];
[label setNumberOfLines:0];
[label setLineBreakMode:UILineBreakModeWordWrap];
[window addSubview:label];
[label release];
[window setBackgroundColor:[UIColor blackColor]];
[window makeKeyAndVisible];
}
바로 sizeWithFont:constrainedToSize:lineBreakMode 를 사용하는 것인데요. 가장 좋은 결과를 보여주더군요.
출처 : http://theeye.pe.kr/334
'프로그래밍 > iOS' 카테고리의 다른 글
OpenURL URL Schemes, HTML에서 어플실행, 어플에서 어플실행, handleOpenURL 이용 (0) | 2011.11.25 |
---|---|
XCODE, 네비게이션바의 Function 목록에 함께 나오는 주석문 작성하기 (0) | 2011.11.08 |
UIWebView 내의 컨텐츠 이벤트 가로채기 (0) | 2011.10.27 |
싱글톤에 관련한 간단한 팁 (0) | 2011.10.25 |
프로젝트에 프로젝트 삽입 (0) | 2011.10.25 |