尽管使用IBDesignable,但无法在Storyboard中预览自定义UIStackView

问题描述:

我不知道是什么导致了这个问题,但我无法在.storyboard文件中看到我的自定义元素的预览。当我在设备上运行它时,它在这里并且工作正常(看起来与我的.xib文件相同),但在故事板中它只是一个空白区域。尽管使用IBDesignable,但无法在Storyboard中预览自定义UIStackView

enter image description here

而且有两个错误回报。我在互联网上搜索了所有内容,但无法让它们消失。

enter image description here

我的代码:

ReusableStackView.swift:

import UIKit 

@IBDesignable 
class ReusableStackView: UIStackView { 

    @IBOutlet var stackView: UIStackView! 
    @IBOutlet weak var stackButton: UIButton! 
    @IBOutlet weak var stackLabel: UITextField! 


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

    required init(coder: NSCoder) { 
     super.init(coder: coder) 
     stackViewSetUp() 
    } 

    override func prepareForInterfaceBuilder() { 
     super.prepareForInterfaceBuilder() 
     stackViewSetUp() 
     stackView.prepareForInterfaceBuilder() 
    } 

    func stackViewSetUp(){ 
     Bundle.main.loadNibNamed("ReusableView", owner: self, options: nil) 
     stackView.frame = self.bounds 
     stackView.autoresizingMask = [.flexibleHeight, .flexibleWidth] 
     addSubview(stackView) 

    } 
} 

我的视图控制器没有连接到任何ReusableStackView逻辑。

+0

我试过清理项目和其他东西。奇怪的是,现在我没有这个警告,并且在设备上运行它时仍然正常工作,但没有预览。我已经用相同的代码尝试过UIView,并且它出现在StoryBoard中。 – codddeer123

+0

这是一个已知的问题,也发生在我身上。干净有时会有所帮助,但它通常是永久性的。提交雷达。 – the4kman

我修好了: 取而代之的是addSubview(stackView) add add addArrangedSubview(stackView)。现在预览出现在IB中。