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

Ham*_*mer 11 xcode storyboard ios swift ibdesignable

这是一个类似的问题到这个,但不完全一样.

我创建了一个UITableViewCell的子类,它引用了一个自定义的nib并将其标记为@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
    }
}
Run Code Online (Sandbox Code Playgroud)

故事板显示永久性的"Designables Updating".

Designables更新

将问题分解为仅对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)
    }

}
Run Code Online (Sandbox Code Playgroud)

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

Ham*_*mer 6

自Xcode 9起,此问题已得到解决.

我曾向Apple报告此问题,至少知道这是一个已知错误.它目前是问题ID 17973876下的一个未解决的问题.

编辑:截至2016年12月7日,此错误仍标记为已打开.

  • 你有Bug报告的最新消息吗? (2认同)