당신은
보관할 문자열 while (size.height<150.0f)
에 한 줄을 추가 (더 나은 boundingRectWithSize:options:attributes:context:
을 사용 iOS7에에)
- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(NSLineBreakMode)lineBreakMode
를 사용할 수 있습니다.
편집 :이 예제는 일할 수 : (참고 :! 당신은 ARC를 사용하지 않는 경우, trimmedStr는 오토 릴리즈한다)
- (NSString*) stringByTrimmingString:(NSString*)str forSize:(CGSize)maxSize withFont:(UIFont*)font
{
NSMutableString* trimmedStr = [NSMutableString new];
for (NSString* line in [str componentsSeparatedByString:@"\n"]) {
NSString *testStr = [trimmedStr stringByAppendingFormat:@"%@\n",line];
CGSize sz = [testStr sizeWithFont:font forWidth:maxSize.width lineBreakMode:NSLineBreakByWordWrapping];
if (sz.height > maxSize.height) {
return [trimmedStr copy];
}
[trimmedStr appendFormat:@"%@\n",line];
}
return [trimmedStr copy];
}
출처
2014-01-26 14:58:15
akw
답변을 참조하십시오. http://stackoverflow.com/questions/15113461/decrease-the-width-of-the-last-line-in-multiline-uilabel – InsertWittyName