Вопрос
Как вы можете определить, когда табличное представление закончило рисовать ячейки?
Проблема
У меня есть две метки в 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, но, хотя он успешно возвращает ячейку, содержимое еще не отрисовывается, что означает, что рамка остается с нулевой шириной.
у кого-нибудь есть решение?
Заранее спасибо,
отметка