Figure out size of UILabel based on String in Swift

后端 未结 11 1514
执笔经年
执笔经年 2020-11-22 13:35

I am trying to calculate the height of a UILabel based on different String lengths.

func calculateContentHeight() -> CGFloat{
    var maxLabelSize: CGSize         


        
11条回答
  •  一整个雨季
    2020-11-22 14:27

    extension String{
    
        func widthWithConstrainedHeight(_ height: CGFloat, font: UIFont) -> CGFloat {
            let constraintRect = CGSize(width: CGFloat.greatestFiniteMagnitude, height: height)
    
            let boundingBox = self.boundingRect(with: constraintRect, options: NSStringDrawingOptions.usesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil)
    
            return ceil(boundingBox.width)
        }
    
        func heightWithConstrainedWidth(_ width: CGFloat, font: UIFont) -> CGFloat? {
            let constraintRect = CGSize(width: width, height: CGFloat.greatestFiniteMagnitude)
            let boundingBox = self.boundingRect(with: constraintRect, options: NSStringDrawingOptions.usesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil)
    
            return ceil(boundingBox.height)
        }
    
    }
    

提交回复
热议问题