【发布时间】:2017-02-24 17:37:32
【问题描述】:
我以编程方式在Swift 中添加UIButton。
private let startBtn: UIButton = {
let btn = UIButton(type: .system)
btn.translatesAutoresizingMaskIntoConstraints = false
btn.setTitle("Get Started!", for: .normal)
btn.backgroundColor = UIColor(red: 0, green: 1, blue: 1, alpha: 1.0)
btn.addTarget(self, action: #selector(ratingButtonTapped), for: .touchUpInside)
btn.setTitleColor(.white, for: .normal)
btn.layer.cornerRadius = 6
btn.layer.zPosition = 3
return btn
}()
一切都很好,除了当我点击UIButton 时,ratingButtonTapped() 没有被调用。
func ratingButtonTapped(_ button: UIButton) {
print("Button pressed")
}
当我将translatesAutoresizingMaskIntoConstraints 更改为true 时,ratingButtonTapped() 被调用。
view.translatesAutoresizingMaskIntoConstraints = true
但是UIButton 没有出现在屏幕上。我认为这与 AutoLayout (我不熟悉以编程方式添加元素)有关。我想继续使用 AutoLayout,因为我想避免使用视觉格式和框架。有什么办法可以做到吗?
感谢您的宝贵时间。
【问题讨论】:
-
在哪里添加按钮作为子视图?
-
我在“选择”屏幕上用代码创建了两个按钮。另外,我正在考虑自动布局,因此关闭了掩码标志。它可以在所有设备和 iOS 9+ 上完美运行。您的代码还有其他问题。
-
你的按钮农场在哪里?
-
我像这样在 viewDidLoad 中添加了我的按钮,view.addSubview(startBtn)
-
另外,zPosition 高于屏幕上的所有其他元素
标签: ios swift uibutton autolayout