将 IBAction 连接到自定义类

Posted

技术标签:

【中文标题】将 IBAction 连接到自定义类【英文标题】:Connect IBAction to custom class 【发布时间】:2017-11-05 18:24:05 【问题描述】:

我编写了一个名为PressableView 的自定义类。它识别水龙头,然后在其委托对象上调用协议函数。由于是UIView的子类,所以默认不允许IBActions的连接。 我想知道是否可以将视图控制器内部的函数(可按下视图位于其中)连接到对象,因此它会在点击时调用该方法——就像您使用 UIButton 一样。

我已经尝试过:

class PressableView: UIView 
    // ...
    @IBOutlet var action: (() -> Void)?
    // ...

...但是,Xcode 不允许该类型为 IBOutlet

有什么想法吗?

【问题讨论】:

【参考方案1】:

PressableView 父类更改为 UIControl 类,然后您可以连接操作并处理它。

UIControl 仅是 UIView 类的子类。所以你也将拥有UIView 的所有属性。

class PressableView: UIControl 
     @IBAction func uicontrolEventAction(_ sender: Any) 
    

【讨论】:

这看起来很有希望。我还可以自己定义何时调用函数吗?比如说,我希望它只在点击两次时触发? 想通了。非常感谢! 我很高兴@LinusGeffarth !!快乐编码! :)

以上是关于将 IBAction 连接到自定义类的主要内容,如果未能解决你的问题,请参考以下文章