对于这个基本问题,我提前表示抱歉,我只是很难找到答案。我有一个 View 类,它是 UIView 的子类,并且有一些基本方法,显然是 draw() 和其他方法。在我的 Main.storyboard 中,我添加了一个 UIView 元素并将其类属性设置为我创建的这个 View 类。类是这样的:
class KeyboardView: UIView {
// local variables ...
override function draw(_ rect: CGRect) {
...
}
class changeKord() {
...
}
// other methods ...
}
我想从我的主 ViewController 类中引用在运行时实际创建的实例。当我为此 UIView 在代码中创建导出时,我需要实例化它,并且我无法访问类中的实例方法。有什么方法可以获取从 outlet 变量创建的实际实例吗?还是我遗漏了什么?
我所做的是在 KeyboardView 类型的 View Controller 类之外创建一个全局变量,并在 KeyboardView 子类的 draw 方法中将该全局变量设置为 self,这样我就可以直接引用该实例。哪个有效,但看起来真的很老套。有没有办法偶然从 IBOutlet 引用中获取实例?
最佳答案
我刚刚将这个简单的示例放在一起,请注意屏幕截图中的 IBOutlet 具有一种 CustomView。
我所做的是在 Storyboard中添加 UIView,然后将属性检查器中的类更改为 CustomView,然后创建 IBOutlet。这随后使用了正确的类型,因此我可以引用 View 的自定义属性和函数。
如果您之前创建了 socket 类型,您可以更新 socket 中的类型,只要它与属性检查器中的类匹配即可。
关于ios - 如何在 Swift 中从其 ViewController 获取 UIView 子类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44722420/