无法以编程方式设置UILabel/UITextView的高度是因为它们是根据其内容自动调整高度的。这意味着它们的高度会根据文本的长度和字体大小自动调整。
对于UILabel,可以使用以下方法来实现自动调整高度:
示例代码如下:
let label = UILabel()
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping
label.text = "Your text here"
let maxSize = CGSize(width: label.frame.width, height: CGFloat.greatestFiniteMagnitude)
let textRect = label.text?.boundingRect(with: maxSize, options: .usesLineFragmentOrigin, attributes: [NSAttributedString.Key.font: label.font], context: nil)
label.frame = CGRect(origin: label.frame.origin, size: CGSize(width: label.frame.width, height: textRect?.size.height ?? 0))
对于UITextView,可以使用以下方法来实现自动调整高度:
示例代码如下:
let textView = UITextView()
textView.isScrollEnabled = false
textView.text = "Your text here"
let newSize = textView.sizeThatFits(CGSize(width: textView.frame.width, height: CGFloat.greatestFiniteMagnitude))
textView.frame = CGRect(origin: textView.frame.origin, size: newSize)
这样,UILabel和UITextView就会根据其内容自动调整高度,以适应文本的长度。
领取专属 10元无门槛券
手把手带您无忧上云