У меня есть статическиеUITableView
с n столбцы и 1 раздел. Клетки детализированы с некоторым динамическим контентом, переданным от другого UIViewController
.
Мое решение заключается в следующем: я делаю вызов в viewDidAppear
представить динамический контент и в конечном итоге перезарядить вид:Быстрое рендеринг статических ячеек с динамическим контентом
override func viewDidAppear(_ animated: Bool) {
setupDetails()
}
fileprivate func setupDetails() {
tableView.cellForRow(at: [0,0] as IndexPath)?.detailTextLabel?.text = "..."
tableView.cellForRow(at: [0,1] as IndexPath)?.detailTextLabel?.text = "..."
// .... multiple cells
tableView.reloadData()
}
Что мне не нравится, что содержание обновляется после того, как вид показан для пользователя (благодаря звонку viewDidAppear
).
Что касается работы с методом cellForRow()
, я не мог бы работать с ним, учитывая тот факт, что ячейка статически создана на моей раскадровке.
Вопрос в том, существует ли шаблон, который будет использоваться в этом конкретном случае, о котором я не думал. В основном я хочу, чтобы представление было загружено до представления представления, как будто я работал с динамическими ячейками.
Спасибо за ваш ответ, когда я имел в виду статичный, я предполагал, что количество ячеек не меняется, вместо этого меняется ячейка 'detail label'. Причина, по которой я не использую динамический 'tableView', заключается в том, что я хочу настроить эту ячейку по-разному в своей раскадровке (учитывая, что количество отображаемых ячеек не изменяется), например. 'sliders',' textfield' и т. д. Проблема с 'viewWillAppear' заключается в том, что с моей текущей реализацией' cellForRow() 'возвращает нуль в это время, поэтому я не могу выполнять свои обновления. Предлагаете ли вы создать статическую структуру в качестве источника данных для динамической таблицы? – r4id4
Несмотря на то, что вы говорите, то, что вы описываете, представляет собой динамическое представление таблицы. Похоже, вы просто ленитесь (не значит обижаться, мы все ленивы, это добродетель!). Укусите пулю и сделайте это правильно. Используйте обычный UITableView с источником данных и делегированием и выполняйте всю работу по настройке в источниках данных и делегировании. Если у вас есть сложные типы ячеек, используйте подклассы UITableViewCell и создавайте их, если хотите, в раскадровке в виде разных прототипов или используйте файлы _.xib_. – matt
Никакого оскорбления не было :) Я просто не совсем согласен с тем, что вы говорите, я связал динамичность UITableView с неизвестным количеством строк, представленным, а не чисто по содержанию!На мой взгляд, статическая таблица по определению является той, что находится в приложении «Настройки» (iOS) с предопределенным количеством строк, но если вы включаете/выключаете Wi-Fi/Bluetooth, вы получаете обратную связь в связанной ячейке «detailLabel», которая отображает Текущее состояние. Это в основном тот же вариант использования, который у меня есть, ядро ядра одинаково, изменяющимся компонентом является статус (т.е. 'detailLabel'). Скажите, если я ошибаюсь. – r4id4