我有一个UILabel,其长度可以变化,这取决于我的应用程序是否在iPhone或iPad上以纵向或横向模式运行。当文本太长而无法在一行上显示并且被截断时,我希望用户能够按下它并弹出全文本。

如何检查UILabel是否将文本截断?可能吗?现在,我只是根据自己所处的模式来检查不同的长度,但是它不能很好地工作。

最佳答案

您可以计算width of the string并查看宽度是否大于label.bounds.size.width
NSString UIKit Additions有几种方法可以计算具有特定字体的字符串的大小。但是,如果您的标签具有minimumFontSize,则允许系统将文本缩小到该大小。在这种情况下,您可能要使用sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:

CGSize size = [label.text sizeWithAttributes:@{NSFontAttributeName:label.font}];
if (size.width > label.bounds.size.width) {
   ...
}

关于ios - 如何检查UILabel是否被截断?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3077109/

10-12 00:16
查看更多