为什么带有图像的按钮会使titleLable文本被切断?

时间:2017-07-19 04:57:48

标签: ios swift autolayout

我在下面的代码中创建了一个代码中的按钮,并将按钮置于其超级视图的中间位置:

let cameraButton: UIButton = {
        let button = UIButton()
        button.setImage(UIImage(named: "cam"), for: .normal)
        button.setTitle("Take Pic", for: .normal)
        button.setTitleColor(UIColor.black, for: .normal)
        button.translatesAutoresizingMaskIntoConstraints = false
        button.titleEdgeInsets = UIEdgeInsets(top: 0, left: 8, bottom: 0, right: 0)
        return button
}()

override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        view.addSubview(cameraButton)
        cameraButton.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
        cameraButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
}

一切正常(因为按钮位于视图中心的中心)但是titleLabel文本由于某种原因被切断(如下图所示):

enter image description here

我认为按钮具有固有的宽度和高度,为什么titleLabel会被切断?宽度是否应该根据其内部(imageView以及标签)扩展?有人可以建议我解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

尝试设置以下属性

        cameraButton.titleLabel!.numberOfLines = 0
        cameraButton.titleLabel!.adjustsFontSizeToFitWidth = true
        cameraButton.titleLabel!.lineBreakMode = NSLineBreakMode.byWordWrapping
相关问题