ios - 不带自动布局的 UILabel 自动框架高度

标签 ios swift layout frame

我正在尝试找出如何实现以下目标。我需要为框架设置一个自定义高度,该高度随着 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 的高度,但最好是自然高度。有什么想法或解决方法吗?

谢谢, 利亚姆

最佳答案

如果你想获取多行文本的大小,可以使用

func boundingRectWithSize(_ size: CGSize,
                  options options: NSStringDrawingOptions,
               attributes attributes: [String : AnyObject]?,
                  context context: NSStringDrawingContext?) -> CGRect

其中 size 是您想要的标签宽度,以及一些非常大的高度数字。您应该阅读 NSString 类引用中的警告。

关于ios - 不带自动布局的 UILabel 自动框架高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33578123/

相关文章:

java - 将 JLabel、JButton 等放置在 JFrame 中

iphone - 如何重复使用多个 .xib 作为另一个 .xib 的模板?

swift - iOS 13 - 右栏按钮项目在模态表演示中偏移

ios - 为什么SQLite方法“sqlite3_step”不起作用

swift - 如何在 0.3 秒后执行给定次数的 Action ?

css - 如何在 Microsoft Edge 中取消反锯齿 Sprite 背景图像放大?

java - Instagram布局如何将评论 TextView 和用户名 TextView 合为一体?

objective-c - 在 UITabBarController 中监听 View Controller 的编程更改

ios - UICollectionView 流布局问题

ios - 可在 Swift 中使用子类解码