我有一个场景,我需要创建大约10个不同的UITableViewCells原型。所有这些单元格都有一些共同的UI元素(标记为黑色的区域)。并且有一个区域(标记为黄色),这些区域对于所有这些原型都是不同的。
有没有办法可以抽象出所有常见的UI元素,就像在UITableViewCell中为contentView做的那样?
我尝试使用所有这些元素创建一个TableViewCell,并清空UIView以保存自定义项,并计划以编程方式将UIView(在单独的xib中创建)加载到其中。
问题是我无法在不放弃约束的情况下将UIView加载到UITableViewCell中?
如何将带有约束的自定义视图加载到另一个?
或者有没有办法像IB中那样创建自定义UITableViewCell?
答案 0 :(得分:0)
来源:https://gist.github.com/DenHeadless/c3d682e7f499113109d6
class LoadableFromXibView: UIView {
var view = UIView()
override init(frame: CGRect) {
super.init(frame: frame)
xibSetup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
xibSetup()
}
func xibSetup() {
view = loadViewFromXib()
view.frame = bounds
view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
backgroundColor = .clearColor()
addSubview(view)
}
private func loadViewFromXib() -> UIView {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: String(self.dynamicType), bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil).first as! UIView
return view
}
}