【发布时间】:2016-11-17 06:22:04
【问题描述】:
我在 xib 中有一个 UIView 设置,其中有四个按钮。文本左对齐,左边缘内容插图全部设置为 20。约束如下:
对于 iPhone 4 和 5 的宽度,xib 的宽度设置为 320。当将此视图添加到视图控制器时,我使框架的宽度与当前屏幕尺寸相同,例如iPhone6 和按钮将水平拉伸。现在,当我设置标题文本时,我希望按钮的高度增加以适应文本。
我继承了 UIButton 并覆盖了这个方法:
override func intrinsicContentSize() -> CGSize {
let labelSize = titleLabel?.sizeThatFits(CGSizeMake(self.frame.size.width, CGFloat.max)) ?? CGSizeZero
let desiredButtonSize = CGSizeMake(labelSize.width + titleEdgeInsets.left + titleEdgeInsets.right, labelSize.height + titleEdgeInsets.top + titleEdgeInsets.bottom)
return desiredButtonSize
}
然后我根据需要设置标题标签。对于 iPhone6 及更高版本,它可以完美运行:
但是对于 iPhone 4 或 5,我得到了这个结果:
有什么想法我可能在这方面做错了吗?真的很感激一些指示。谢谢!
【问题讨论】:
-
4/5 和 6 的 iOS 版本是什么?
-
9.3 在我正在测试的所有模拟器上@jacobbullock