IBDesignable 永远不会完成故事板中 UITableViewCell 的更新

IBDesignable never finishes updating UITableViewCell in storyboard

这是一个与 this 相似但又不完全相同的问题。

我创建了一个 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 Updating"。

将问题分解为一个不太复杂的测试,即仅对 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)
    }

}

有人成功创建了@IBDesignable UITableViewCell 子类吗?这发生在 Xcode 7 beta 6 和 beta 5 中。

我遇到了类似的问题。这个线程帮助我理解了这个问题:Is there a way for Interface Builder to render IBDesignable views which don't override drawRect:

我通过添加

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

据我阅读上述堆栈 link 后的理解,IBDesignable 不是从 nib 或编码器而是从 init with frame 加载情节提要中的 nib。不太确定,但我认为 init with style 正在做类似的事情。

此问题已于 Xcode 9 日解决。

我已将此问题报告给 Apple,并且至少知道这是一个已知错误。目前是问题 ID 17973876 下的未解决问题。

编辑:截至 2016 年 12 月 7 日,此错误仍标记为未解决。

似乎 "Updating" 错误仅在单元格位于情节提要内时才会发生。当您为单元格创建特殊的 .xib 文件时一切正常。

希望他们能尽快解决。