我有一个UILabel,它的长度可以根据我的应用程序在iPhone或iPad上是以纵向模式还是横向模式运行而有所不同.当文本太长,无法显示在一行,它截断,我希望用户能够按下它,并得到一个完整的文本弹出窗口.

如何判断UILabel是否在截断文本?这有可能吗?现在我只是根据我所处的模式判断不同的长度,但它不能很好地工作.

推荐答案

你可以计算width of the string,看看宽度是否大于label.bounds.size.width

NSString UIKit Additions有几种方法可以计算特定字体的字符串大小.但是,如果标签的最小字体大小允许系统将文本缩小到该大小.在这种情况下,您可能需要使用sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:.

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

Ios相关问答推荐

SwiftUI中ForEach和@ State数组的可能并发问题

什么是最好的方式使用DateFormatters在可扩展视图cellForRowAt方法

SWIFT根据地球坐标修改 node 旋转

Xcode -Google Mobile Ads SDK在没有AppMeasurement的情况下初始化

如何在SwiftUI中将图像整合到文本标签中间?

_SKStoreProductParameterAdNetworkSourceIdentifier未定义符号

ionic 4 - 编译 ios - 来自项目Pods的目标GoogleDataTransport中的问题

如何解决错误 HE0004:无法在 Visual Studio 2022 中加载框架ContentDeliveryServices

使用 Foundation 解压缩文件

通过函数使用 Gesture 时,键入任何视图不能符合视图

async/await、Task 和 [weak self]

如何在 Xcode 4 中切换 .h 和 .m

在 Swift 中追加字符串

interfaceOrientation在 iOS 8 中已弃用,如何更改此方法 Objective C

使用 convertPoint 获取父 UIView 内的相对位置

NSPredicate 用于测试 NULL 和空白字符串

无法加载从带有标识符的包中的笔尖引用的图像

如何在 iphone 屏幕中间显示活动指示器?

在 NSUserDefaults 中存储值是否有任何限制?

如何为 NSDate 添加一个月?