我在下面有这个代码,它在代码中创建一个按钮,并将按钮置于其超级视图的中间:
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
}
Run Code Online (Sandbox Code Playgroud)
一切正常(因为按钮位于视图中心的中心)但titleLabel文本由于某种原因被切断(如下图所示):
我认为按钮具有固有的宽度和高度,那么为什么titleLabel会被切断呢?宽度是否应该根据其内部(imageView以及标签)扩展?有人可以建议我解决这个问题的方法吗?