截断NSString以适合大小?

时间:2013-01-10 23:56:50

标签: iphone ios objective-c nsstring

  

可能重复:
  Measuring the pixel width of a string in Objective C

我使用[string drawInRect:]方法,并希望将字符串截断为适合该大小的最大长度。它并不像找出每行有多少个字符那么简单,因为每个字母的宽度都不同。我想找到字符串不再可见的原因是我可以将elipses添加到字符串的末尾。

3 个答案:

答案 0 :(得分:2)

查看NSString Additions ReferencedrawInRect:withAttributes:的文档。在“常量”下,您会找到一个自动执行所需操作的选项:

  

NSStringDrawingTruncatesLastVisibleLine   如果文本不适合指定的边界,则截断并将省略号字符添加到最后一个可见行。

答案 1 :(得分:1)

如果@Mundi提供的解决方案不足或您需要知道文本适合多少,则可以使用。

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size

在一个循环中减小文本的大小直到它适合。

答案 2 :(得分:0)

你想在哪里使用这个字符串?如果它在UILabel中,则可以使用NSLineBreakMode = NSLineBreakByTruncatingTail。