答案 0 :(得分:3)
我也面临着同样的问题……得到了
的解决Editor -> Refresh All Views
答案 1 :(得分:2)
我花了几个小时来解决这个问题,但所有答案都没有帮助我。终于我找出了自己的错误。
在@IBInspectable didSet属性中,我正在调用通用的setup()函数来利用我的视图。但是,我试图调整textField而不检查它是否为nil。这就是为什么我遇到“无法渲染”问题以及运行时崩溃的原因。
例如:
@IBInspectable var isTitleEnabled: Bool = true{
didSet{ setup() }
}
setup()函数为:
private func setup(){
textField.isSecureTextEntry = isPassword
}
这是错误的。 Xcode不允许以这种方式修改子视图。 呈现IB组件时,Xcode认为它尚未初始化,因此会引发错误。为了解决这种误解,我们需要确保IB组件不为零。
因此,我们需要像这样使用它:
guard textField != nil else { return }
textField.isSecureTextEntry = isPassword ? true : false
IB组件不必只是UITextField。它对其他IB组件(如UILabel,UIImageView等)有效。
答案 2 :(得分:1)
请参阅遵循此答案https://stackoverflow.com/a/52790289/8276509或 只需尝试在故事板选择
中转到编辑器,然后刷新所有视图