2009-08-31 5 views
1

drawAtPoint (큰 차이는 없습니다)을 사용하여 NSString을 그립니다. 줄 바꿈 모드를 설정하는 매개 변수가 있지만 문자열이 잘리는 경우 "..."을 문자열에 추가하는 방법에 대해 누구나 생각할 수 있습니까?NSString drawAtPoint/drawInRect : 잘린 문자열에 "..."을 붙입니다.

한 가지 옵션은 문자열이 충분히 짧은 지 확인하는 것입니다. 그렇지 않은 경우 문자열 길이 + 3이 최대 길이가 될 때까지 마지막 문자를 반복적으로 제거합니다.

더 나은 해결책이 있다고 확신합니다. 누구 아이디어?

- (CGSize)drawAtPoint:(CGPoint)point 
      forWidth:(CGFloat)width 
      withFont:(UIFont *)font 
     lineBreakMode:(UILineBreakMode)lineBreakMode 

그리고 lineBreakModeUILineBreakModeTailTruncation을 지정

답변

1

최저

,

하인리히 당신은 다른 NSString 방법을 사용하는 것이 좋습니다 것입니다.

+0

두 방법 lineBreakMode의 차이점은 무엇입니까를 사용할 수 있습니까? – pablasso

-1

NSStringDrawingUsesLineFragmentOrigin 값이있는 NSStringDrawingTruncatesLastVisibleLine 옵션을 사용할 수 있습니다.

[_text drawWithRect:_textRect options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine attributes:attributes context:nil]; 
0

iOS 7.0부터 업데이트 대답이 drawAtPoint:forWidth:withFont:lineBreakMode: 이후로 변경되었습니다. 대신, 당신은 지금 drawInRect:withAttributes:

NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new]; paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail; NSDictionary *textAttributes = @{NSFontAttributeName : [UIFont systemFontOfSize:20.0f], NSParagraphStyleAttributeName : paragraphStyle}; [text drawInRect:textRect withAttributes:textAttributes];