我有一个 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) {
...
}
https://stackoverflow.com/questions/3077109/
相关文章:
ios - UICollectionView 的 cellForItemAtIndexPath 没有
objective-c - 如何在运行时使用 Objective-C 动态创建选择器?
java - Java接口(interface)和Objective-C协议(protocol)的区
ios - 无法在模拟器中运行应用程序 : An error was encountered whi
iphone - Xcode 4.2 首选项 "Support Wirelessly Connect
objective-c - 有没有办法强制在 NSArray、NSMutableArray 等上输入
objective-c - 将 writeToFile :atomically: overwrite