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

Posted

技术标签:

【中文标题】UIButton - 如何设置最小字体大小?【英文标题】:UIButton - How to set Minimum Font Size? 【发布时间】:2015-02-08 16:20:20 【问题描述】:

我的问题很简单。有没有办法为UIButton 设置最小字体大小,这样可以很容易地用UILabel 设置?

【问题讨论】:

【参考方案1】:
button.titleLabel.numberOfLines = 1;
button.titleLabel.adjustsFontSizeToFitWidth = YES;
button.titleLabel.lineBreakMode = NSLineBreakByClipping;

复制自Set minimum font size UIButton with margin

【讨论】:

虽然它适用于作者,但答案中没有提供最小字体大小设置 @PrzemysławWrzesiński:adjustsFontSizeToFitWidth = YES; 这样做 不,它没有。它会缩小文本,但要设置最小字体大小,您还需要使用 minimumScaleFactor @PrzemysławWrzesiński:UILabel 还是 UIButton?? UILabel: developer.apple.com/reference/uikit/uilabel/…【参考方案2】:

Anoop 的回答很有魅力。您也可以使用用户定义的运行时属性在 IB 中执行此操作: - 在 IB 中选择按钮 - 添加属性 - KeyPath:titleLabel.adjustsFontSizeToFitWidth - 类型:布尔值 - 值:真Screenshot from IB

【讨论】:

【参考方案3】:

Set Minimumfontsize 在 ios8 中不可用,请改用 minimumscalefactor。

【讨论】:

【参考方案4】:

在 Swift 4/5 中

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

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

【讨论】:

【参考方案5】:

对于 Swift 5.0

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

【讨论】:

【参考方案6】:

Teetz 的回答很有魅力。如果您想在 UIButton 边缘的 titleLabel 之间添加边距adjustsFontSizeToFitWidth,您可以在第一个字符之前和最后一个字符之后添加一些空格.所以,它看起来很整洁。

【讨论】:

以上是关于UIButton - 如何设置最小字体大小?的主要内容,如果未能解决你的问题,请参考以下文章

设置UIButton的文字显示位置字体的大小字体的颜色

蜗牛爱课 -- iOS 设置UIButton的字体的大小显示位置大小

WPF做一个界面,Label的字体如何随窗口的大小变化?

POI如何自动调整Excel单元格中字体的大小

子类化 UIButton 标题字体大小意外更改

UIView动画中的UIButton字体大小问题