有没有办法从 UIControl 中删除所有 UIAction?
或者有没有办法检查 UIControl 是否有任何 UIActions?
有时我想改变 UIControl 的行为。 当使用目标动作时,我可以这样做
button.removeTarget(nil, action: nil), for: .touchUpInside)
button.addTarget(self, action: #selector(didTouchUpInside()), for: .for: .touchUpInside)
or is there a way to check whether a UIControl has any UIActions?
Sometimes I want to change a UIControl's behavior.
When using target-action, I can do it like this
button.removeTarget(nil, action: nil), for: .touchUpInside)
button.addTarget(self, action: #selector(didTouchUpInside()), for: .for: .touchUpInside)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
enumerateEventHandlers
来执行此操作:You can do this using
enumerateEventHandlers
:以 jrturton 所说的这里,您可以将其变成一个小扩展:
现在您只需在 UIButton 上调用
removeAllActions()
即可达到相同的效果。Taking what jrturton has said here, you can turn it into a small extension:
And now you can just call
removeAllActions()
on your UIButton to have the same effect.为什么不使用
view.isUserInteractionEnabled = false
?它将删除视图的所有交互能力Why not you are using
view.isUserInteractionEnabled = false
? It will remove all the interaction ability of a view