UIButton 子类忽略“Touch Up Inside”事件
Posted
技术标签:
【中文标题】UIButton 子类忽略“Touch Up Inside”事件【英文标题】:UIButton Subclass Ignoring 'Touch Up Inside' Event 【发布时间】:2016-03-19 17:39:33 【问题描述】:我有一个 UIButton 的子类:
import UIKit
class CustomButton: UIButton
required init?(coder decoder: NSCoder)
super.init(coder: decoder)
//Customizing the button appearance
在界面生成器中,在故事板中,在我的主视图控制器下,我拖放了一个股票按钮,并从下拉菜单中将其“自定义类”更改为自定义按钮。
将它的“Touch Up Inside”事件连接到 IBAction。
显示自定义外观代码,但按钮未触发“内部修饰”。
当我检查子类中的触摸事件(触摸开始、结束、进食)时,按钮似乎正在接收触摸。
【问题讨论】:
【参考方案1】:尝试在作为 UIButton 一部分的子视图上禁用用户交互。这将允许手势继续到按钮本身。
userInteractionEnabled = false
【讨论】:
【参考方案2】:发现问题:
当我自定义按钮时,我添加了一个 UIVisualEffectView 作为覆盖整个框架的子视图,并取消了按钮能够接受的任何事件。很不幸。
我不得不使用 UIView 子类并添加一个点击手势来模拟触摸事件。
【讨论】:
以上是关于UIButton 子类忽略“Touch Up Inside”事件的主要内容,如果未能解决你的问题,请参考以下文章