我尝试使用自定义的xib文件。但是这些UI并未显示在xcode的主视图控制器中。但是它会在运行应用程序时显示。我已经在类中添加了@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,然后选择“编辑器->刷新所有视图”。然后应该出现您的自定义视图。

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

    仅当您需要InterfaceBuilder中的特殊设计外观时,才需要实现prepareForInterfaceBuilder()

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

    10-08 05:58