UIButton标签显示三个点

时间:2017-01-13 09:42:04

标签: ios swift uibutton uikit

我用这行代码设置我的按钮标题:

self.timerButton.setTitle(String(Int(duration)), for: .normal)

按钮大到屏幕的1/3,文本大小为60,这在以前的项目中很好,但现在duration的值发生了变化(从120~0),文字经常显示...,有时甚至是数字的一半,这有什么不对?

以下是调试器中显示的约束:

3 个答案:

答案 0 :(得分:4)

试试这可能会对你有所帮助:

self.timerButton.titleLabel?.adjustsFontSizeToFitWidth = true

答案 1 :(得分:2)

@ Deny的评论非常有用,我查看了我的约束条件,发现我用这种方法设置了按钮的图像大小:

self.contentEdgeInsets = UIEdgeInsets(top: (self.frame.height - imageSize) / 2, left: (self.frame.width - imageSize) / 2, bottom: (self.frame.height - imageSize) / 2, right: (self.frame.width - imageSize) / 2)

导致titleLabel的大小小于应有的大小,因此我将上述代码更改为:

self.imageEdgeInsets = UIEdgeInsets(top: (self.frame.height - imageSize) / 2, left: (self.frame.width - imageSize) / 2, bottom: (self.frame.height - imageSize) / 2, right: (self.frame.width - imageSize) / 2)

然后它奏效了。

TL; DR

  

问题是由约束引起的。

答案 2 :(得分:1)

这不是一个完美的解决方案,但是设置宽度限制会迫使按钮不能缩小太多,就像这样:

myButton.translatesAutoresizingMaskIntoConstraints = false
myButton.widthAnchor.constraint(greaterThanOrEqualToConstant: 180).isActive = true