Вот интересная проблема, которую я пытаюсь решить.Восстановить UITableViewCell из раскадровки для каждой строки без удаления
Я хочу использовать одну ячейку, которая настроена в раскадровке для разных конфигураций ячеек, удаляя ненужные вещи из ячейки.
Вот как спрятать ячейку.
В принципе, если я не нужен образ для шага (или красный зрения) я просто удалить его из клетки, и все совпадет динамически просто отлично, и я не рассчитать высоту ячейки или делать какие-либо кодирование. Однако, поскольку я должен повторно использовать ячейки, когда я получаю ячейку для следующей строки, у меня нет этого представления. Я могу добавить его снова в ячейку, но я теряю все ограничения.
В случае, если вам это нужно для идей, вот некоторый код:
class RecipeStepTableViewCell: UITableViewCell {
@IBOutlet weak var preparationLabel: UILabel!
@IBOutlet weak var stepNumberLabel: UILabel!
@IBOutlet weak var stepImageView: UIImageView!
@IBOutlet weak var stepTextLabel: UILabel!
@IBOutlet weak var stepTimerView: UIView!
override func awakeFromNib() {
super.awakeFromNib()
}
}
И это, как я справиться с этим он cellForRowAtIndexPath:
let cell = tableView.dequeueReusableCellWithIdentifier("RecipeStepCell", forIndexPath: indexPath) as RecipeStepTableViewCell
let step = stepForIndexPath(indexPath)
if step.image == nil {
cell.stepImageView.removeFromSuperview()
}
// etc.
Мне очень нравится этот подход, поскольку у меня нет для создания 10 конфигураций ячеек, и все, что мне нужно, это заставить его создать новую ячейку для каждой строки.
Кстати, у представления будет только 5, 6 ячеек, поэтому производительность не должна быть проблемой.
Это работает просто отлично. Единственная проблема заключается в том, что я также должен сохранять ограничения на интервал и устанавливать их на ноль, но он работает с идентификатором повторного использования, например, с таблицами. Благодаря! –