Xcode Swift:如何根据按钮的大小动态更改按钮字体大小?

时间:2017-09-06 05:35:14

标签: ios swift xcode uibutton storyboard

我知道我可以通过自动收缩动态地查询UIlabel的字体大小。但UI按钮没有自动收缩属性,

那么如何根据按钮的大小动态更改按钮的字体大小?

代码:

导入UIKit

类ViewController:UITableViewController {

@IBAction func myButt(_ sender: UIButton) {}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    myButt.titleLabel?.adjustsFontSizeToFitWidth = true

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell")! as UITableViewCell

    return cell
}

}

3 个答案:

答案 0 :(得分:1)

UIButton标题显示在UILabel对象中。因此,您可以通过访问UIButton的titleLabel属性来设置属性。

答案 1 :(得分:0)

更具体地说:

yourUIButtonName.titleLabel?.adjustsFontSizeToFitWidth = true

将字体大小调整为按钮的宽度,调整内容插入将允许您填充文本的边缘。

但是,如果您尝试以某种方式更改字体大小 not 与按钮标签的大小成正比,则可能需要获取CGRect和必要时数学出来。

答案 2 :(得分:0)

您还必须设置minimumScaleFactor属性,该属性指定当前字体大小的最小乘数。

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        myButt.titleLabel?.adjustsFontSizeToFitWidth = true
        myButt.titleLabel?.minimumScaleFactor = 0.5 

    }