我试图弄清楚如何实现以下目标。我需要为框架定制一个自定义高度,该高度随UILabel的行数而变化。
let titleLabel:UILabel =
titleLabel.text = "The Never Ending Story That Never Ends"
titleLabel.lineBreakMode = .ByWordWrapping // or NSLineBreakMode.ByWordWrapping
titleLabel.numberOfLines = 0
titleLabel.font = UIFont(name: "Geomanist-Medium", size: 32)
titleLabel.frame = CGRectMake(16 + xOffset, screenSize.width + 20, screenSize.width - 32, 100)
self.scrollView.addSubview(titleLabel)
我尝试做的是用一个根据UILabel中的行数自动更新的变量替换titleLabel.frame的高度,但最好是自然的高度。任何想法或解决方法?
谢谢, 利安
答案 0 :(得分:0)
如果您想获得多行文字的大小,可以使用
func boundingRectWithSize(_ size: CGSize,
options options: NSStringDrawingOptions,
attributes attributes: [String : AnyObject]?,
context context: NSStringDrawingContext?) -> CGRect
其中size是标签所需的宽度,高度是一些非常大的数字。您应该阅读NSString类引用中的警告。