【问题标题】:ios/swift How to calculate label width before showing it [duplicate]ios / swift如何在显示之前计算标签宽度[重复]
【发布时间】:2020-07-22 22:17:23
【问题描述】:
let label = UILabel()
label.text = "Label Text"

在 addSubview 之前获取标签宽度。

view.addSubview(标签)

【问题讨论】:

    标签: swift uiview label


    【解决方案1】:

    你可以使用这个函数width(forHeight height: CGFloat, font: UIFont)来计算字符串的宽度。

    let tetxWidth = "Label Text".width(forHeight: 15, font: .systemFont(ofSize: 14))
    
    extension String {
    
        func width(forHeight height: CGFloat, font: UIFont) -> CGFloat {
            let constraintRect = CGSize(width: .greatestFiniteMagnitude, height: height)
            let boundingBox = self.boundingRect(with: constraintRect, options: .usesLineFragmentOrigin, attributes: [.font: font], context: nil)
    
            return ceil(boundingBox.width)
        }
    }
    

    【讨论】:

    • 不幸的是,这并不总是提供导致文本被剪切的正确值。
    猜你喜欢
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多