我在下面的代码中创建了一个代码中的按钮,并将按钮置于其超级视图的中间位置:
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文本由于某种原因被切断(如下图所示):
我认为按钮具有固有的宽度和高度,为什么titleLabel会被切断?宽度是否应该根据其内部(imageView以及标签)扩展?有人可以建议我解决这个问题吗?
答案 0 :(得分:5)
尝试设置以下属性
cameraButton.titleLabel!.numberOfLines = 0
cameraButton.titleLabel!.adjustsFontSizeToFitWidth = true
cameraButton.titleLabel!.lineBreakMode = NSLineBreakMode.byWordWrapping