在动态调整大小按钮时将字体大小调整为宽度,按钮没有宽度静态约束

时间:2017-03-02 13:50:57

标签: ios swift swift3

我有三个按钮,在iPad适应性模式下最终非常接近,但在iPad或iPhone风景时相距甚远。我使用静态尾随/前导/底部空间约束正确缩放按钮,并且它们的高度与视图高度成比例。按钮调整很好,但我必须在viewdidload中以编程方式为不同的屏幕尺寸设置所有按钮标签字体大小。我希望我可以在我的课程中添加可调整大小的标题标签功能,但我似乎无法锁定它。

任何帮助都将不胜感激。

我的自定义按钮类:

    import UIKit

class BetterButton: UIButton {

required public init?(coder aDecoder: NSCoder) {

    super.init(coder: aDecoder)

    self.titleLabel!.font = UIFont(name: "Marker Comp", size: 200)
    self.titleLabel?.minimumScaleFactor = 0.5
    self.titleLabel?.numberOfLines = 0
    self.titleLabel?.adjustsFontSizeToFitWidth = true

    self.layer.cornerRadius = 4
    self.layer.shadowOpacity = 1
    self.layer.shadowOffset = CGSize(width: 0.0, height: 2.0)
    self.layer.shadowRadius = 0
    self.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.25).cgColor

}

}

所有按钮文本在运行时都是200,但调整到宽度不会激活。

1 个答案:

答案 0 :(得分:1)

尝试添加此内容:

self.titleLabel?.lineBreakMode = NSLineBreakMode.ByClipping

此外,最小的ScaleFactor为0.5的字体大小为200会导致最小的字体大小为100,这仍然相当大。

将minimumScaleFactor更改为0.1或0.05,或将max / normal字体大小更改为30就可以了。