gpt4 book ai didi

ios - 自定义 UIView 警告

转载 作者:行者123 更新时间:2023-11-28 06:56:11 24 4
gpt4 key购买 nike

我正在创建弹出自定义 UIView。我创建了 custom.xib、custom.swift。在我的 custom.xib 中,我所有者的对象指的是 custom。我在 custom.swift 和 loadNib 中实现了名为“custom”的 init func。在 super.init(coder: aDecoder) 处收到此警告和断点之前,我从 init func 收到无限调用。

warning: could not load any Objective-C class information. This will significantly reduce the quality of type information available.

View Controller

let customView: Custom = Custom(frame: CGRectMake(100,100,200,200))
self.view.addSubview(customView)

自定义

var view: Custom!
override init(frame: CGRect) {
super.init(frame: frame)
loadNib()
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
loadNib()
}

private func loadNib() -> Custom {
return NSBundle.mainBundle().loadNibNamed("Custom", owner: self, options: nil)[0] as! Custom
}

最佳答案

您的 loadNib() 方法在这种情况下没有用。它返回 Custom View 的实例,但结果从未被 init 方法使用。您可以将 loadNib() 声明为类方法并删除 Custom 类中的 init:

class Custom: UIView {
class func loadNib() -> Custom {
return NSBundle.mainBundle().loadNibNamed("Custom", owner: self, options: nil)[0] as! Custom
}
}

然后您可以使用您的loadNib() 方法直接在ViewController 中实例化Custom View 并以这种方式更改框架:

let customView = Custom.loadNib()
customView.frame = CGRectMake(100,100,200,200)
self.view.addSubview(customView)

关于ios - 自定义 UIView 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33592760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com