根据this answer,我可以使用intrinsicContentSize
自动计算宽度/高度。那就是我所做的,但是结果是0, 0
class AutoSizeUIButton: UIButton{
override func intrinsicContentSize() -> CGSize {
return CGSizeMake(self.frame.size.width, self.titleLabel!.frame.size.height)
}
}
networkButton.setTitle("something-here", forState: .Normal)
networkButton.titleLabel?.font = UIFont(name: "HelveticaNeue", size: 20.0)!
let networkSize = networkButton.intrinsicContentSize()
print("button size", networkSize.width, networkSize.height) //prints 0.0, 0.0
难道我做错了什么?注意:我不想使用约束。我只想打印宽度/高度。
最佳答案
尝试networkButton.sizeThatFits。
let networkSize = networkButton.sizeThatFits(CGSizeZero)
print("button size", networkSize.width, networkSize.height)
(传递给sizeThatFits的参数通常会被忽略,并且记录不充分。我不确定CGSizeZero是否可在任何地方使用-也许您应该传递任意大的尺寸)
关于ios - 如何计算给定文本和字体的UIButton的宽度和高度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37104612/