Мне нужно добавить ярлыки один за другим по вертикали, а их число - динамическое. На данный момент он отлично работает с этим кодом:Динамическое число элементов в TableViewCell
let numUnitsLabel = UILabel(frame: CGRectZero)
numUnitsLabel.text = units
numUnitsLabel.font = UIFont.boldSystemFontOfSize(28)
numUnitsLabel.textColor = UIColor.redColor()
numUnitsLabel.translatesAutoresizingMaskIntoConstraints = false
cell.contentView.addSubview(numUnitsLabel)
let topConstraint = NSLayoutConstraint(item: numUnitsLabel, attribute: .Top, relatedBy: .Equal, toItem: cell.contentView, attribute: .Top, multiplier: 1, constant: 8 * CGFloat(i+1) + CGFloat(i*25) + CGFloat(i*20) - 5)
let rightConstraint = NSLayoutConstraint(item: numUnitsLabel, attribute: .Trailing, relatedBy: .Equal, toItem: cell.contentView, attribute: .Trailing, multiplier: 1, constant: -10)
cell.contentView.addConstraints([topConstraint, rightConstraint])
Ячейка нарисована отлично. Но когда я добавляю новый элемент в список и звоню tableView.reloadData
, старые ярлыки «запоминаются», и они над новыми. Недавно добавленный объект помещается в первую очередь в массив, и они похожи друг на друга ... Может быть, мой подход плох, но если у вас есть какие-либо предложения, пожалуйста, посоветуйте мне.
Вы можете подклассифицировать tableviewcell и удалить subviews в методе prepareforreuse. –
Хорошо, но в цикле для меня есть код выше, поэтому в основном я добавляю метку X раз. Я подклассифицировал prepareForReuse и теперь, как удалить все из них? – Slavcho
Если ваши метки определены в классе, вы можете сказать numUnitsLabel.removeFromSuperview(). Если вы хотите удалить все из ячейки: для просмотра в contentView { view.removeFromSuperview() } –