【问题标题】:How to get a UIView subclass instance from its ViewController in Swift如何从 Swift 中的 ViewController 获取 UIView 子类实例
【发布时间】:2017-06-23 13:16:31
【问题描述】:

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

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

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

    class changeKord() {
        ...
    }

    // other methods ...
}

我想从我的主 ViewController 类中引用在运行时实际创建的实例。当我在代码中为此 UIView 创建一个插座时,我需要实例化它,并且我无法访问类中的实例方法。有什么方法可以获取从 outlet 变量创建的实际实例吗?还是我错过了什么?

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

【问题讨论】:

    标签: ios swift uiview


    【解决方案1】:

    我只是把这个简单的例子放在一起,请注意屏幕截图中 IBOutlet 的类型是 CustomView。

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

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

    【讨论】:

    • 谢谢!!这就是我错过的:(
    猜你喜欢
    • 2015-05-19
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多