Я хочу изменить подвид UITableViewCell
«s, когда она является установка в cellForRowAtIndexPath
со следующим кодом:изменения Рама подвида вида таблицы ячейки не будет происходить до тех пор мнение не было появляться
cellSubView.center = CGPointZero
Распечатка координаты кадра показывают, что кадр обновляется успешно, однако представление все еще отображается в позиции, заданной в построителе интерфейса.
Переопределение viewDidAppear
функции с помощью следующего кода будет решить эту проблему:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.tableView.reloadData()
}
Но это приведет к миганию: представление таблицы уже было появляться, когда я меняю одну позиции подвида в его клеток.
Как можно изменить кадр до вид действительно появился?
Вы использовали AutoLayout? – SolaWing
Если вы используете autoLayout, попробуйте перезагрузить таблицу в методе делегата viewWillLayoutSubviews(). –
Из iOS8 вы действительно не должны настраивать кадр в коде. Изменения кода в кадрах из iOS8 часто игнорируются или изменяются ограничениями, которые система добавляет для вас. Вместо этого вы должны использовать ограничения. Добавьте ограничение для 'cellSubView', которое центрирует его в виде контейнера. –