IBDesignable从不完成更新故事板中的UITableViewCell

这是一个类似的问题,但不完全相同。

我创build了UITableViewCell的一个子类,它引用了一个自定义的笔尖,并将其标记为@IBDesignable。 在代码和.xib文件中进行的更改在模拟器和设备中正确显示,而不是在故事板中显示。

import UIKit @IBDesignable class TextFieldTableViewCell: UITableViewCell { var view: UIView! required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) setup() } override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) setup() } func setup() { view = loadViewFromNib() view.frame = bounds view.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight] contentView.addSubview(view) } func loadViewFromNib() -> UIView { let bundle = NSBundle(forClass: self.dynamicType) let nib = UINib(nibName: "TextFieldTableView", bundle: bundle) let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView return view } } 

故事板显示一个永久的“Designables更新”。

设计更新

将问题分解成一个不太复杂的testing,只testing一个UITableViewCell的子类并将其标记为@IBDesignable,从而产生相同的永久性“Designables Updating”。

 import UIKit @IBDesignable class TextFieldTableViewCell: UITableViewCell { required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) } } 

有没有人有创build@IBDesignable UITableViewCell子类成功? 这在Xcode 7 beta 6和beta 5中正在发生。

从Xcode 9开始,这个问题已经解决了。

我已经向苹果公司报告过这个问题,至less知道这是一个已知的错误。 目前在问题ID 17973876下是一个未解决的问题。

编辑:截至12/7/2016这个错误仍然被标记为打开。

我有类似的问题。 这个线程帮助我理解了这个问题: Interface Builder是否有一种方法来呈现不覆盖drawRect的IBDesignable视图:

我通过添加它来工作

 override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) layoutSubviews() } 

据我了解上面的堆栈链接后,IBDesignable不是从nib或编码器,而是从init与框架加载故事板中的笔尖。 不太确定,但我认为初始化风格正在做类似的事情。

看来只有当单元格在故事板内时,“更新”错误才会发生。 当您为单元格创build特殊的.xib文件时,一切正常。

希望他们能尽快解决。