tableView单元格 /视觉格式语言 /保持相同的约束



创建包含元素的UaiteViewCells以编程方式起作用,除了约束外。也许是。每次重新出现时,都会将相同的约束添加到元素中。在滚动表视图后,我将在uilabel中添加20个相同的约束。这是我的sublcass(凝结):

class TimeSlotCell: UITableViewCell {
let lblTime = UILabel()
var viewCons = [String:AnyObject]()
var previousCageView:UIView!
var myConstraints = [NSLayoutConstraint]()

func configureCell(row:Int,cageCount:Int) {
    lblTime.translatesAutoresizingMaskIntoConstraints = false
    self.addSubview(lblTime)
    placeConstraint("H:|-5-[time(row)]", view:"time(row)")
    placeConstraint("V:|-17-[time(row)]", view: "time(row)
} 
func placeConstraint(format:String, view:String) {
    viewCons[view] = lblTime
    let navViewConstraint = NSLayoutConstraint.constraintsWithVisualFormat(format, options: [], metrics: nil, views: viewCons)
            myConstraints += navViewConstraint
            NSLayoutConstraint.activateConstraints(myConstraints)
   }

在我的VC中,我在我的CellForrowatIndExpath中调用Configurecell func。

有没有办法检查现有约束是否存在?有没有办法确保只能添加我的一个约束?还是有一个更好的解决方案的人?预先感谢。

有一个数据源,用于您的表视图,当您配置单元格时,将单元格模型发送到单元格。每当数据源变化时,发送到单元格的单元格模型也会更改。因此,您需要做的是将大多数"添加"移动到单元的初始化。如果您必须使用单元格模型进行cell.contentview.addsubview。您必须判断您发送到单元格的单元模型是否与前者相同。如果它是平等的,请什么都不做,其他重置视图config。

相关内容

最新更新