NSString drawAtPoint / drawInRect:将“...”附加到截断的字符串

时间:2009-08-31 19:19:25

标签: iphone nsstring

我使用NSStringdrawAtPoint绘制drawInRect,这没什么大不同的。 有一个参数来设置换行模式,但有人知道如果截断它们,如何将“...”附加到字符串?

一种选择是检查字符串是否足够短。如果不是这种情况,请迭代删除最后一个字符,直到字符串长度+ 3为最大长度。

我相信有更好的解决方案。有人有想法吗?

最佳,

海因里希

3 个答案:

答案 0 :(得分:1)

您最好使用其他NSString方法:

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

并将UILineBreakModeTailTruncation指定为lineBreakMode

答案 1 :(得分: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];

答案 2 :(得分:-1)

您可以将npm start选项与NSStringDrawingTruncatesLastVisibleLine值一起使用。

NSStringDrawingUsesLineFragmentOrigin