ios – 如何根据图形宽度截断NSString?

在UILabel中,有使用不同截断技术(UILineBreakMode)截断标签功能.在Nsstring UIKit Additions中,绘制字符串有类似的功能.

但是,我发现无法访问实际的截断字符串.有没有其他方法可以根据给定字体的(图形)宽度获取截断的字符串?

我希望用这种方法在Nsstring上有一个类别:

-(Nsstring*)stringByTruncatingStringWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode

解决方法

一种选择是通过循环尝试不同的大小,直到获得正确的宽度.即从完整字符串开始,如果它比您需要的更宽,则用省略号字符替换最后两个字符.循环直到它足够窄.

如果您认为自己将使用长字符串,则可以二进制搜索截断点以使其更快一些.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...