我尝试使用我的自定义 xib 文件。但是那些 UI 没有显示在 xcode 的主视图 Controller 中。但它会在运行应用程序时显示。我已经在类里面添加了@IBDesignable。这是我所做的。
我创建了 TestView.xib 并添加了一些设计
我创建了 TestView.swift
我用自定义类中的 TestView 更新了 TestView.xib 的 fileOwner
我在 testView.swift 中添加了初始化代码
TestView.swift 中的代码
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 的 UIView 上添加并链接到具有自定义类名的 TestView。
运行应用程序后,我可以从 testView 中看到 UI。 Image of emulator and result
- 但是我的自定义 UI 没有显示在 xcode 的 MainViewController 中 Image of xcode view controller
如何才能在 MainViewController 中看到我的自定义 UI?谢谢
最佳答案
在 InterfaceBuilder 中选择您的 ViewController 并选择“Editor-->Refresh all Views”。然后应该出现您的自定义 View 。
如果出现问题,您可以通过在代码中设置断点来调试 IBDesignable 类,然后选择“编辑器-->调试选定 View ”。
prepareForInterfaceBuilder()
仅当您需要在 InterfaceBuilder 中进行特殊设计时才需要实现。
有时需要清理项目和构建文件夹才能使其正常工作:
项目->清理
项目->(按住选项键)->清理构建文件夹
关于ios - IBDesignable UI 未在带有 Swift 的 Xcode 9 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46847863/