我以编程方式在UIButton
中添加Swift
。
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,因为我想避免使用可视格式和帧。有什么办法可以做到吗?
感谢您的时间。
答案 0 :(得分:0)
1:检查您的picture = models.ImageField(upload_to = generate_picture_name)
是否未被其上方的UIButton
覆盖,导致触摸无法触及UIView
。
2:检查您的UIButton
是否在"外面"它已被添加到的超级视图。例如,如果您在UIButton
内,而UIView
位于UIButton
UIView
之外,则触摸不会到达。
如果您无意中错误地发生了这些问题。布局约束/框架。