我正在寻找与Android的Paint.breakText()等效的iOS objective-c 。
我有一个放在矩形中的字符串。如果不合适,我需要找到要用省略号替换的字符索引,然后删除其余字符串。
编辑:
正如James Bedford的答案所暗示的,可以通过添加UIKit NSString来解决此问题。
[foo drawInRect:someRect withFont:someFont
lineBreakMode:UILineBreakModeTailTruncation];
当与绘图结合使用时,UILineBreakModeTailTruncation将在字符串的末尾添加省略号。
最佳答案
您是否尝试过在NSString UIKit Additions category, referenced here中使用sizeWithFont:
方法?
编辑:
我最好的办法是编写一种算法,尝试使用这些sizeWithFont:
方法尝试所需的字符串的每个长度,直到无法再将字符串装入框中为止。此时,您知道您需要返回三个字符以留出省略号。您应该能够将此算法优化为O(log(n))。