ios - 没有获得正确的 UILabel 行数

标签 ios swift xcode swift3

 value = UILabel(frame: CGRect(x: 5 ,y: 5, width:Int(self.view.frame.width - 140) ,height: 16 ))
        value.numberOfLines = 0
        value.font = UIFont.systemFont(ofSize: 14.0)
       value.lineBreakMode = .byWordWrapping
        value.text = ((items["comment"] as? String) ?? "")!
        value.setLineHeight(lineHeight: CGFloat(1))
        var lineCount = 0;
        let textSize = CGSize(width: value.frame.size.width, height: CGFloat(Float.infinity));
        let rHeight = lroundf(Float(value.sizeThatFits(textSize).height))
        let charSize = lroundf(Float(value.font.lineHeight));

        lineCount = rHeight/charSize
        print(lineCount)
       }

当尝试获取该 UILabel 中的行数时。它总是给我一个比实际行数更多的数..

extension UILabel {
func setLineHeight(lineHeight: CGFloat) {
    let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.lineSpacing = 1.0
    paragraphStyle.lineHeightMultiple = lineHeight
    paragraphStyle.alignment = self.textAlignment

    let attrString = NSMutableAttributedString(string: self.text!)
    attrString.addAttribute(NSFontAttributeName, value: self.font, range: NSMakeRange(0, attrString.length))
    attrString.addAttribute(NSParagraphStyleAttributeName, value:paragraphStyle, range:NSMakeRange(0, attrString.length))
    self.attributedText = attrString
}

最佳答案

检查这段代码。这会正确计算行数。我已经在 XCode 8 中测试过了

value = UILabel(frame: CGRect(x: 50 ,y: 50, width:Int(self.view.frame.width - 140) ,height: 400 ))
value.numberOfLines = 0
value.font = UIFont.systemFont(ofSize: 14.0)
value.lineBreakMode = .byWordWrapping
value.text = ((items["comment"] as? String) ?? "")!
let textSize = CGSize(width: value.frame.size.width, height: CGFloat(Float.infinity));
let rHeight = Float(value.sizeThatFits(textSize).height)
var lineCount:Float = 0;
let charSize = Float(value.font.lineHeight)
lineCount = floor(rHeight / charSize)
print("lineCount \(lineCount)")

关于ios - 没有获得正确的 UILabel 行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40126547/

相关文章:

ios - 如何自定义UISlider高度

ios - 在 TableView 中按距离排序

ios - 如何对齐字符串中的 Logo

iphone - MBProgressHUD 和执行选择器问题 - iphone

ios - Xcode:架构 i386 的 undefined symbol :为 iOS 模拟器构建 Unity 项目时的 DebugStringToFile

objective-c - 什么类型的代码正确 : addSubview or direct controller assignment in AppDelegate?

ios - 获取EKEvent的日历标题

ios - 如何在表或 Collection View 中实现无限加载?

ios - 图像大小在不同屏幕 Xcode 上不会改变

xcode-选择事件开发人员目录错误