【问题标题】:UIButton Subclass Ignoring 'Touch Up Inside' EventUIButton 子类忽略“Touch Up Inside”事件
【发布时间】:2026-01-17 15:50:01
【问题描述】:

我有一个 UIButton 的子类:

    import UIKit
    class CustomButton: UIButton {

        required init?(coder decoder: NSCoder) {
            super.init(coder: decoder)

            //Customizing the button appearance
        }
    }

在界面生成器中,在故事板中,在我的主视图控制器下,我拖放了一个股票按钮,并从下拉菜单中将其“自定义类”更改为自定义按钮。

将它的“Touch Up Inside”事件连接到 IBAction。

显示自定义外观代码,但按钮未触发“内部修饰”

当我检查子类中的触摸事件(触摸开始、结束、进食)时,按钮似乎正在接收触摸。

【问题讨论】:

    标签: ios xcode uibutton touch subclass


    【解决方案1】:

    尝试在作为 UIButton 一部分的子视图上禁用用户交互。这将允许手势继续到按钮本身。

    userInteractionEnabled = false
    

    【讨论】:

      【解决方案2】:

      发现问题:

      当我自定义按钮时,我添加了一个 UIVisualEffectView 作为覆盖整个框架的子视图,并取消了按钮能够接受的任何事件。很不幸。

      我不得不使用 UIView 子类并添加一个点击手势来模拟触摸事件。

      【讨论】: