2010-12-31 3 views
0

Я хочу сделать UITableView, который автоматически регулирует размер его ячейки по его содержимому.Автоматический размер ячейки таблицы TableView в iPhone?

Содержимое содержится в файле XML, а данные - только текст.

Я хочу поместить текст в cell, и он должен автоматически делать word-wrap и поддерживать многострочные линии.

Таким образом, каждая ячейка может иметь разную высоту. Это возможно?? или любая идея?

Спасибо;)

ответ

1

Да, это возможно. Используйте следующий метод для выполнения его,

- (CGFloat)tableView:(UITableView *) tableView heightForRowAtIndexPath: (NSIndexPath *)indexPath { 
CGSize cellHeight; 
if (indexPath.row == 0) { 
    cellHeight = [yourXMLContents sizeWithFont:[UIFont systemFontOfSize:13.0f] constrainedToSize:CGSizeMake(300.0, 1000.0) lineBreakMode:UILineBreakModeWordWrap]; 
    return cellHeight.height + 20; 
} else 
    return 30; 

}

+0

Я пробовал это, но почему-то возвращаемое значение из метода heightForRowAtIndexPath составляет более 50, но размер ячейки всегда равен 46 в методе cellForRowAtIndexPath. Почему это? heightForRowAtIndexPath вызывается первым, а затем вызывается cellForRowAtIndexPath. – SeniorLee

+0

И, наконец, он работает. Спасибо за ваш совет! – SeniorLee

0

Вы смотрели на three20 library? Он изменит размеры ячеек, чтобы они соответствовали содержимому. По крайней мере, вы можете посмотреть, как реализован код для изменения размеров ячеек.

+0

спасибо Я никогда не слышал Three20. Но теперь я могу хотя бы взглянуть на это, как это происходит. Кстати, вы корейцы? – SeniorLee

+0

yessir, i am korean :) – donkim

+0

рад видеть korean в StackOverflow;) – SeniorLee

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