12

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

我创建了一个 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 更新”。

设计更新

将问题分解为仅将 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 中。

4

3 回答 3

6

从 Xcode 9 开始,此问题已得到解决。

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

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

于 2016-03-08T18:13:52.983 回答
1

我遇到了类似的问题。这个线程帮助我理解了这个问题:Interface Builder 有没有办法呈现不覆盖 drawRect 的 IBDesignable 视图:

我通过添加让它工作

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

据我在阅读上述堆栈链接后了解,IBDesignable 不是从 nib 或从 coder 而是从带有 frame 的 init加载情节提要中的 nib 。不太确定,但我认为 init with style 正在做类似的事情。

于 2015-09-08T15:49:23.917 回答
0

似乎只有当单元格位于情节提要内时才会发生“更新”错误。当您为单元格创建特殊的 .xib 文件时,一切正常。

希望他们能尽快修复它。

于 2016-06-13T10:46:06.793 回答