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

标签 ios swift uiview xcode9 ibdesignable

我尝试使用我的自定义 xib 文件。但是那些 UI 没有显示在 xcode 的主视图 Controller 中。但它会在运行应用程序时显示。我已经在类里面添加了@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)
}

}
  1. 并在 MainViewController 的 UIView 上添加并链接到具有自定义类名的 TestView。

  2. 运行应用程序后,我可以从 testView 中看到 UI。 Image of emulator and result

  3. 但是我的自定义 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/

相关文章:

javascript - 无法访问 Cloud Code Parse Framework 上的属性 "createdAt"

ios - 单击按钮不播放音频

ios - Swift 中的 UIView 子类 : IBOutlet is found nil while unwrapping

ios - 如何从底部制作一个 UILabel "fill up"?

iphone - 从用作 tableHeaderView 的 xib 文件内的按钮转到 VC

IOS,UIView,检测 subview 中的隐藏状态变化

ios - 使用选项卡栏 Controller 更改 View 时 UIView.animateWithDuration 完成得太早

ios - 列出 Firebase 数据和关系

ios - 使用自动布局隐藏UIView时以编程方式添加约束

ios - GameCenter排行榜发布后不会更新