gpt4 book ai didi

swift - 带有 .xib-File 的 @IBDesignable 类未在 Interface Builder 中呈现

转载 作者:搜寻专家 更新时间:2023-10-31 23:09:43 26 4
gpt4 key购买 nike

我有一个 CustomClass.swift 和一个 CustomClass.xib。我希望 XCode 的 Interface Builder 使用提供的 .xib 文件呈现类 CustomClass 的 View 。就像我运行应用程序时一样。

我正在使用 XCode 8.3.2 (8E2002)

自定义类.swift

import UIKit


@IBDesignable class forceInterface: UIView {

override init(frame: CGRect) {
super.init(frame: frame)
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
Bundle.main.loadNibNamed("forceInterface", owner: self, options: nil)
self.addSubview(view)
view.frame = self.bounds

}



@IBOutlet var view: UIView!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var progressView: UIProgressView!

override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()

}
}

自定义类.xib

文件所有者设置为 CustomClass。它包含一个 UIView,其中包含一个 UISwitch 和一个 UILabelCustomClass.xib

问题是,即使我的 CustomClass.swift 中有 @IBDesignable,它也不会在 InterfaceBuilder 中呈现。我在那里放置了一个 UIView 并将其类设置为 CustomClass: enter image description here

如您所见,它甚至在检查器中显示Designables: Up to date。但我什么也没看到。

运行该应用程序时一切正常!

最佳答案

你为什么要这样做

self.addSubview(view)
view.frame = self.bounds

在将 View 作为 subview 添加到其父 View 之前,您应该分配 View 的框架

view.frame = self.bounds
self.addSubview(view)

我不确定为什么即使您已将其指定为 IBDesignable,您的 View 仍未加载。我通常使用这些步骤进行故障排除。

  • 关闭并重新打开 Xcode
  • 清理 Xcode
  • 稍等片刻,通常大约一分钟左右,您将看到 View 刷新/更新本身,显示您自定义绘制的内容

关于swift - 带有 .xib-File 的 @IBDesignable 类未在 Interface Builder 中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44390832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com