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

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

我已经尝试过:

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

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

有什么想法吗?

【问题讨论】:

    标签: ios xcode interface-builder


    【解决方案1】:

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

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

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

    【讨论】:

    • 这看起来很有希望。我还可以自己定义何时调用函数吗?比如说,我希望它只在点击两次时触发?
    • 想通了。非常感谢!
    • 我很高兴@LinusGeffarth !!快乐编码! :)
    猜你喜欢
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多