如何从Swift中的ViewController获取UIView子类实例

时间:2017-06-23 13:16:31

标签: ios swift uiview

我提前抱歉这个基本问题,我很难找到答案。我有一个子类UIView的视图类,并且有一些基本方法,显然是draw()和其他。在我的Main.storyboard中,我添加了一个UIView元素,并将其class属性设置为我创建的视图类。这堂课就像:

class KeyboardView: UIView {
    // local variables ...

    override function draw(_ rect: CGRect) {
        ...
    }

    class changeKord() {
        ...
    }

    // other methods ...
}

从我的主ViewController类中,我想引用在运行时实际创建的实例。当我在这个UIView的代码中创建一个插座时,我需要实例化它,而我无法访问类中的实例方法。有没有办法获得从outlet变量创建的实际实例?或者我错过了什么?

我所做的是在KeyboardView类型的View Controller类之外创建一个全局变量,在KeyboardView子类的draw方法中,我将该全局变量设置为self,这允许我直接引用该实例。哪个有效,但看起来真的很ha ..有没有办法从IBOutlet参考中获取实例?

1 个答案:

答案 0 :(得分:1)

Screenshot 1 - Test project Screenshot 2 - Property inspector

我刚刚将这个快速示例放在一起,请在截图中注意IBOutlet有一种CustomView。

我所做的是在故事板中添加UIView,然后将属性检查器中的类更改为CustomView,然后创建IBOutlet。然后使用了正确的类型,因此我可以引用视图的自定义属性和功能。

如果您创建了插座中的类型,只要它与属性检查器中的类匹配,就可以更新插座中的类型。