簡體   English   中英

NSString drawAtPoint / drawInRect:在截斷的字符串后附加“…”

[英]NSString drawAtPoint/drawInRect: Append “…” to truncated string

我正在使用drawAtPointdrawInRect ,這沒什么大不了)繪制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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM