ios - 如何查看UILabel当前的字体大小?

标签 ios swift uikit

我有 3 个 UILabels,我想为它们设置相同的字体(3 种可能性中最小的一个)。问题是什么?我不知道如何检查当前字体 - 每个 UILabels 使用 Autoshrink ,最小字体比例和行数等于 0。UILabels 的文本设置在 ViewDidLoad() 方法(可能的标签文本有多种组合)。

我尝试使用 UILabel.font.pointSize 属性(在 viewDidAppear() 方法中调用)获取当前字体大小,然后比较所有字体大小。问题是 UILabel.font.pointSize 返回的不是 UILabel 文本字体大小的当前值(在完成 Autoshrink 后),而是在 Storyboard 中设置的值。

我完全没有想法,所以感谢您的帮助!

你好,约翰

最佳答案

使用此扩展

extension String {

       func height(withConstrainedWidth width: CGFloat, font: UIFont) -> CGFloat {
            let constraintRect = CGSize(width: width, height: .greatestFiniteMagnitude)
            let boundingBox = self.boundingRect(with: constraintRect, options: .usesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil)

            return ceil(boundingBox.height)
        }
}

获取高度

height = strDesc.height(withConstrainedWidth: UIScreen.main.bounds.size.width - 160, font: UIFont.systemFont(ofSize: 14.0))

关于ios - 如何查看UILabel当前的字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59116106/

相关文章:

ios - 在swift中将容器 View 分成2个 Controller

php - 使用 PHP 将文本插入 MySQL 时如何处理(在服务器端)&符号?

swift - Storekit:如何检查产品是否已购买?

iphone - 像滑动菜单一样推文

ios - 合适的 api 从扫描的条形码 iphone 应用程序获取产品详细信息?

iphone - 在 Safari 而不是 UIWebView 中打开 YouTube URL

ios - 如果我使用具有屏障的操作系统原子函数进行写入/交换,则在 64 位平台上读取 64 位原子值是否安全?

ios - APNS 保存通知

ios - 如何更改状态栏的框架?

swift - 是否可以将代码语句与 @_functionBuilder 元素混合使用?