gpt4 book ai didi

ios - 如何在 Swift 中屏蔽 UIButton?

转载 作者:行者123 更新时间:2023-12-01 19:30:51 25 4
gpt4 key购买 nike

我有一个复杂的堆栈 View ,其中有许多排列好的标签和按钮。当我试图掩盖整个堆栈 View 以强制执行圆角半径时,堆栈 View 中的按钮不再起作用( Action 选择器在 内部触摸时未触发)。我决定首先将问题简化为一个按钮和一个面具,如下所示:

    let mask = UIView()
mask.translatesAutoresizingMaskIntoConstraints = false
mask.backgroundColor = .green
mask.layer.cornerRadius = 50
view.addSubview(mask)
mask.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
mask.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
mask.widthAnchor.constraint(equalToConstant: 200).isActive = true
mask.heightAnchor.constraint(equalToConstant: 100).isActive = true



btn = UIButton()
btn.backgroundColor = .red
btn.translatesAutoresizingMaskIntoConstraints = false
btn.setTitle("More info", for: .normal)
btn.tintColor = .black
btn.addTarget(self, action: #selector(moreInfoTapped), for: .touchUpInside)


view.addSubview(btn)
btn.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
btn.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
btn.widthAnchor.constraint(equalToConstant: 200).isActive = true
btn.heightAnchor.constraint(equalToConstant: 100).isActive = true


view.layoutSubviews()
view.setNeedsLayout()

btn.mask = mask
这会正确遮盖按钮,但不幸的是, mask 位于按钮前面,因此点击按钮是 从未注册。
这是 View 层次结构:
Mask overlaying button
我错过了什么吗?

最佳答案

如果您指导我,我不知道您为什么要遮盖以实现圆角,我可以建议您更好的解决方案..但是对于您当前的情况,如果您关闭 mask View 的用户交互..您的按钮将开始响应

mask.isUserInteractionEnabled = false

关于ios - 如何在 Swift 中屏蔽 UIButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62882501/

25 4 0
文章推荐: ios - 有没有办法在点击时存储 pdf 注释?
文章推荐: java - 在 Java 中如何从 Stream>> 到 ArrayList