将 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 连接到自定义类的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP 类自定义导入

如何以编程方式添加尺寸类自定义

UICollectionViewCell 中的 NSLayoutConstraint:尺寸类自定义不起作用

iOs5,试图了解 UIPickerView 以及如何将其连接到我的自定义类

无法在新的自定义类 Xcode 11 中连接到 IBOutlet

如何将小部件连接到在一个类中声明的自定义信号,同时在另一个类中