带有Swift的Xcode 9中未显示IBDesignable UI

The*_*Soe 2 uiview ios swift ibdesignable xcode9

我尝试使用自定义的xib文件。但是这些UI并未显示在xcode的主视图控制器中。但是它会在运行应用程序时显示。我已经在类中添加了@IBDesignable。这是我所做的。

  1. 我创建了TestView.xib并添加了一些设计

  2. 我创建了TestView.swift

  3. 我在自定义类中使用TestView更新了TestView.xib的fileOwner

  4. 我将初始化代码添加到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)
}

}
Run Code Online (Sandbox Code Playgroud)
  1. 并在MainViewController的UIView上添加了该链接,并使用自定义类名称链接到TestView。

  2. 之后,我运行该应用程序,可以从testView看到UI。仿真器图像和结果

  3. 但是我的自定义UI不在xcode的MainViewController中显示xcode视图控制器的图像

如何启用MainViewController中的自定义UI?谢谢

zis*_*oft 6

在InterfaceBuilder中,选择您的ViewController,然后选择“编辑器->刷新所有视图”。然后您的自定义视图应该出现。

如果出现问题,可以通过在代码中设置断点来调试IBDesignable类,然后选择“编辑器->调试选定的视图”。

prepareForInterfaceBuilder() 仅在需要在InterfaceBuilder中具有特殊设计外观时才需要实现。

有时有必要清理项目并构建文件夹以使其正常工作:
Project-> Clean
Project->(按住选项键)-> Clean Build Folder