Оказалось, что в TableView-контроллерном классе нужно обратить внимание на одну важную функцию:
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// бла-бла-бла...
if (cell == nil)
cell = [[[MyCustomTableCell alloc]
initWithStyle:UITableViewCellStyleDefault // или другой стиль
reuseIdentifier:nil] // ВОТ ТУТ ПОСТАВЬТЕ nil вместо CellIdentifier (NSString* строки)
autorelease];
// бла-бла-бла...
}
Оказывается, если вы поставите nil вместо строки, вы тем самым ЗАПРЕТИТЕ ПОВТОРНОЕ ИСПОЛЬЗОВАНИЕ ЯЧЕЕК ОДНОГО И ТОГО ЖЕ РАЗМЕРА, что будет вам гарантировать создание каждой индивидуальной ячейки с её индивидуальными размерами. Теперь весь текст будет исправно влезать (если вы конечно не ошиблись с вычислением размеров под текст).
Кстати, вы можете вообще вместо initWithStyle в вашем классе ячейки добавить множество других функций для более удобной инициализации ячейки, например initWithStyleAndMyParameters - никто не запрещает вам кроме важных стандартных параметров в процессе создания ячейки передать ещё несколько нужных вам параметров (например указатель или даже C++ ссылку на текст). В конце концов, вы можете просто переделать initWithStyle функцию под свои нужды.
Комментариев нет:
Отправить комментарий