这是一个类似于这个问题,但并不完全相同。
我创建了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
}
}
故事板显示了一个永久的“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中发生的。