2013-05-21 4 views
0

У меня есть много ячеек, которые содержат несколько изменяемых размеров UITextView. Я хочу, чтобы dataSource вызывал heightForRowAtIndexPath перед каждым вызовом cellForRowAtIndexPath, а не только когда таблица перезагружает данные. В этом случае я мог бы вернуть поддельные высоты при перезагрузке, и мне не нужно было бы перерисовывать ВСЕ текстовые элементы все время при обновлении (производительность очень низкая, когда мне нужно перерисовать, скажем, 1000 текстовых элементов), но как раз вовремя, когда эти текстовые элементы действительно необходимо.Как сделать UITableViewDataSource запрашивать высоту ячейки перед каждым вызовом cellForRowAtIndexPath?

ответ

0

Используйте функцию:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

в контроллере

0

Да Делают это с UITableViewDelegate реализовать tableView:heightForRowAtIndexPath: Как

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath 
{ 
    if (indexPath.row == 1) { 
    return 90; 
    } 
    else{ 
    return 45; 
    } 
} 
+0

если мои TextViews не будет изменяемыми, это было бы отличным вариантом, но в моем случае, если я изменил ширину textView в одной ячейке, мне нужно сделать это со всеми текстовыми изображениями ячеек, потому что они должны работать как столбцы. Таким образом, в этом методе я хочу вернуть значение поддельной высоты (тогда мне не нужно будет подсчитывать высоту ячейки для невидимых ячеек) и заставить запрашивать dataSource для высоты перед вызовом cellForRowAtIndexPath, а затем возвращать истинное подсчитанное значение. – Povilas

+0

Как я понимаю, вы можете сделать две переменные 'int 'для' Max Height' и 2nd для 'Min Height' и проверить ее извлечения в соответствии с индексом ячейки или индексом Array, как я также описываю? – Buntylm

+0

Вы решили свою проблему? – Buntylm

Смежные вопросы