//기존의 레이블의 프레임을 저장해 놓습니다. CGRect labelrect = label.frame; NSString *new = [NSString stringWithFormat:@"%@", @"바사나다라마나다라마나다라마나다라마나다라마바"]; //스트링을 레이블에 셋팅합니다. [label setText:new]; //레이블의 프레임을 저장합니다. CGRect newBounds = label.bounds; //레이블의 폰트에 맞춰서 레이블을 라인하나로 딱 맞게 합니다. newBounds.size = [new sizeWithFont:label.font]; //레이블(한줄로 쫙 늘어놓은)의 넓이를 기존의 레이블의 넓이로 나누어서 레이블의 높이를 구합니다. NSNumber *num = [NSNumber numberWithFloat:newBounds.size.width/labelrect.size.width]; //소숫점은 하나 더 해줘야 하므로 더 해줍니다. int labelline = [num intValue]+1; if(labelrect.size.height > newBounds.size.height*labelline) { //레이블을 라인수대로 늘려줍니다. [label setFrame:CGRectMake(labelrect.origin.x, labelrect.origin.y, labelrect.size.width, newBounds.size.height*labelline)]; }else { [label setFrame:CGRectMake(labelrect.origin.x, labelrect.origin.y, labelrect.size.width, labelrect.size.height)]; } //레이블에 라인을 설정해줍니다. label.numberOfLines = labelline;
'Developer > iOS' 카테고리의 다른 글
[iOS] 상위 뷰 컨트롤러 가져오는 법. super viewcontroller (0) | 2011.05.31 |
---|---|
[iOS] Class 비교하기. (1) | 2011.05.27 |
[iOS] 어플에서 어플 실행시키기(앱에서 앱 실행 시키기) (6) | 2011.05.25 |
[iPhone iPad] Gesture 인식 샘플 (1) | 2011.05.24 |
NSNumber 활용법 (2) | 2011.05.24 |