我使用NSString
(drawAtPoint
绘制drawInRect
,这没什么大不同的。
有一个参数来设置换行模式,但有人知道如果截断它们,如何将“...”附加到字符串?
一种选择是检查字符串是否足够短。如果不是这种情况,请迭代删除最后一个字符,直到字符串长度+ 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