我有CustomClass.swift
和CustomClass.xib
。我希望XCode的Interface Builder使用提供的.xib-File呈现类CustomClass
的视图。就像我运行应用程序时一样。
我正在使用XCode 8.3.2(8E2002)
import UIKit
@IBDesignable class forceInterface: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
Bundle.main.loadNibNamed("forceInterface", owner: self, options: nil)
self.addSubview(view)
view.frame = self.bounds
}
@IBOutlet var view: UIView!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var progressView: UIProgressView!
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
}
}
文件所有者设置为CustomClass
。它包含UIView
,其中包含UISwitch
和UILabel
。
问题在于,虽然我的@IBDesignable
中有CustomClass.swift
,但它不会在InterfaceBuilder中呈现。我在那里放置UIView
并将其类设置为CustomClass
:
正如您所看到的,它甚至在检查器中说 Designables:最新。但我没有看到任何东西。
运行应用时,一切都按预期工作!
答案 0 :(得分:0)
你为什么这样做
self.addSubview(view)
view.frame = self.bounds
在将视图的子视图添加到其超级视图
之前,您应该分配视图的框架view.frame = self.bounds
self.addSubview(view)
即使您已将其指定为IBDesignable,我也不确定您为什么查看未加载。我通常使用这些步骤进行故障排除。