我试图使用我的自定义xib文件。但是那些UI没有在xcode中的主视图控制器中显示。但它显示运行应用程序时。我已经在课堂上添加了@IBDesignable。这就是我做的。
import UIKit
@IBDesignable class DetailView: UIView {
override init(frame: CGRect){
super.init(frame: frame)
self.setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
self.setup()
}
func setup() {
let view = Bundle.main.loadNibNamed("TestView", owner: self, options: nil)?.first as! UIView
view.frame = self.bounds
self.addSubview(view)
}
}
如何在MainViewController中启用自定义UI?谢谢
在Interface Builder中,选择您的UIViewController并选择“Editor - > Refresh all Views”。然后你的自定义视图应该出现。
如果出现问题,您可以通过在代码中设置断点来调试IBDesignable类,然后选择“编辑器 - >调试所选视图”。
如果在Interface Builder中需要特殊的设计外观,则只需要实现qazxsw poi。
有时需要清理项目并构建文件夹以使其工作: 项目 - >清除 项目 - >(按住选项键) - >清理构建文件夹
我刚刚更改了设置功能。它现在正在运作。 prepareForInterfaceBuilder()
Final Result Image - It showing UI in IB
覆盖以下两个func for live:
func setup() {
view = loadViewFromNib()
view.frame = bounds
view.autoresizingMask = UIViewAutoresizing(rawValue: UIViewAutoresizing.RawValue(UInt8(UIViewAutoresizing.flexibleWidth.rawValue) | UInt8(UIViewAutoresizing.flexibleHeight.rawValue)))
self.addSubview(view)
}
func loadViewFromNib() -> UIView {
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: "TestView", bundle: bundle)
let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView
return view
}