Вопрос
Как вы можете определить, когда табличное представление завершает рисование ячеек?
Выпуск
Я получил две метки в contentView UITableViewCell. Размер этих меток является динамическим. Я смог сделать это, создав подкласс UITableViewCell, в методе drawRect я настраиваю кадры двух меток в зависимости от их содержимого. Теперь я хочу выровнять все вторые метки.
Мои мысли в шагах
- Определите содержимое в табличном представлении и дайте ему автоматически загрузиться.
- Пройдите через ячейки табличного представления и определите положение x второй метки в UITableViewCell, который находится дальше всего.
- Сохраните эту позицию x, а когда нарисована любая ячейка, используйте эту позицию x для размещения второй метки.
Проблема в том, что если я использую следующий код:
for (int row = 0; row < [self.tableView numberOfRowsInSection:section]; row++) {
UITableViewCustomCell *cell = (UITableViewCustomCell *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:0]];
NSLog ([cell.labelTwo description]);
}
Вторая метка еще не нарисована, что означает, что я не могу определить размер рамки и, следовательно, не могу найти правильную позицию x для выравнивания всех вторых меток.
Я попытался создать подкласс UITableViewController и, к сожалению, просматривать такие события, как viewDidLoad и viewDidAppear, также в этих событиях ячейки еще не прорисованы.
Что я хочу ...
Я хочу, чтобы табличное представление рисовало ячейки хотя бы один раз, чтобы я мог определить размеры меток в ячейке табличного представления. Я подумал, что это можно сделать, перебрав все ячейки с помощью cellForRow, но, хотя он успешно возвращает ячейку, содержимое еще не прорисовано, то есть кадр остается с нулевой шириной.
У кого-нибудь есть решение?
Заранее спасибо,
Mark