UIButton - 如何设置最小字体大小?

17

我的问题很简单。是否有办法像设置UILabel一样轻松地为UIButton设置最小字号?

6个回答

51

1
虽然这对作者有效,但答案中没有提供最小字体大小设置。 - Przemysław Wrzesiński
@PrzemysławWrzesiński:adjustsFontSizeToFitWidth = YES; 这样做。 - Anoop Vaidya
不,它并不会。它会缩小文本,但要设置最小字体大小,您还需要使用minimumScaleFactor。 - Przemysław Wrzesiński
@PrzemysławWrzesiński:UILabel还是UIButton? - Anoop Vaidya
UILabel:https://developer.apple.com/reference/uikit/uilabel/1620544-minimumscalefactor - Przemysław Wrzesiński

15

Anoop的答案非常好用。您也可以在IB中使用用户定义的运行时属性来完成此操作:
- 在IB中选择按钮
- 添加属性
- 键路径:titleLabel.adjustsFontSizeToFitWidth
- 类型:布尔值
- 值:true
来自IB的截图


3

设置最小字号在iOS8中不可用,请使用minimumscalefactor代替。


2

在Swift 4/5中

请确保yourBtn在@IBoutLet中可用,而不是在viewdidLoad或viewWillAppear的action中

override func viewDidLoad() {
    super.viewDidLoad()
    yourBtn.titleLabel?.numberOfLines = 1
    yourBtn.titleLabel?.adjustsFontSizeToFitWidth = true
    yourBtn.titleLabel?.lineBreakMode = NSLineBreakMode.byClipping
}

0

Teetz的答案非常有效。如果您想在UIButton的titleLabel边缘之间添加边距,以便在adjustsFontSizeToFitWidth之后,您可以在第一个字符之前和最后一个字符之后添加几个空格。这样看起来更整洁。


0

针对Swift 5.0版本

override func viewDidLoad() {
        
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        YourButton.titleLabel?.numberOfLines = 1
        YourButton.titleLabel?.adjustsFontSizeToFitWidth = true
 
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接