[英]NSString drawAtPoint/drawInRect: Append “…” to truncated string
我正在使用drawAtPoint
( drawInRect
,這沒什么大不了)繪制NSString
。 有一個參數可以設置換行模式,但是有沒有人知道如何在字符串被截斷的情況下將“ ...”附加到字符串上?
一種選擇是,檢查字符串是否足夠短。 如果不是這種情況,請反復刪除最后一個字符,直到字符串長度+ 3等於最大長度為止。
我相信有更好的解決方案。 有人知道嗎?
最好,
海因里希
您最好使用另一個NSString
方法:
- (CGSize)drawAtPoint:(CGPoint)point
forWidth:(CGFloat)width
withFont:(UIFont *)font
lineBreakMode:(UILineBreakMode)lineBreakMode
並將UILineBreakModeTailTruncation
指定為lineBreakMode
。
自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];
您可以將NSStringDrawingTruncatesLastVisibleLine
選項與NSStringDrawingUsesLineFragmentOrigin
值一起使用。
[_text drawWithRect:_textRect options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine attributes:attributes context:nil];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.