首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取具有多行的UILabel的垂直大小?

获取具有多行的UILabel的垂直大小?
EN

Stack Overflow用户
提问于 2015-05-31 15:28:53
回答 1查看 57关注 0票数 0

我有一个多行的UILabel:

代码语言:javascript
运行
复制
let serviceDescription: UILabel = UILabel() serviceDescription.text =
"some very long text..." 
serviceDescription.numberOfLines = 0
serviceDescription.sizeToFit()
self.contentView.addSubview(serviceDescription)

然后我添加了一些自动收费约束:

代码语言:javascript
运行
复制
serviceDescription.snp_makeConstraints { (make) -> Void in
  make.top.equalTo(self.contentView_snp_top).offset(24)
  make.left.equalTo(self.contentView).offset(20)
  make.right.equalTo(self.contentView).offset(-20)
}

现在,我想计算这个标签在屏幕上需要的大小,所以我做了:

代码语言:javascript
运行
复制
let newSize: CGSize = serviceDescription.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize)
println("serviceDescription size: \(newSize)")

结果是:

代码语言:javascript
运行
复制
(3408.0, 95.5)

我在viewDidLoad()中执行了前面的所有命令。

如何获得屏幕上标签的正确大小?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-31 16:09:31

你不需要计算它的高度,标签在放置好后就知道它的高度,

代码语言:javascript
运行
复制
    override func viewDidLoad() {
        super.viewDidLoad()
        println(label.frame.height) // 21
        label.text = "Some long text to make the text go over more than one line"
        label.layoutIfNeeded()
        println(label.frame.height) // 101.5
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30559157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档