У меня есть UITableview
с несколькими многоразовыми таблицами TableViewCells. В одной ячейке у меня есть UITextView
, который меняет размер, чтобы соответствовать его контенту. Теперь мне просто нужно изменить размер таблицы contentView
TableViewCell, поэтому я могу прочитать текст while. Я уже пробовал:Как изменить размер UITableViewCell для его содержимого?
cell2.contentView.bounds.size.height = cell2.discriptionTextView.bounds.size.height;
Или:
cell2.contentView.frame = CGRectMake(0, cell2.discriptionTextView.bounds.origin.y,
cell2.discriptionTextView.bounds.size.width,
cell2.discriptionTextView.bounds.size.height);
В методе:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath {}
Но это не будет работать.
Кто-нибудь знает, как это сделать?
Новый код:
@implementation AppDetail
CGFloat height;
…
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{…
cell2.TextView.text = self.text;
[cell2.TextView sizeToFit];
height = CGRectGetHeight(cell2.TextView.bounds);
…
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0) {
return 143;
}
if (indexPath.row == 1) {
return height;
}
return 0;
}
ОК, теперь я добавил свой код, и он работает, но только во второй раз, когда вы просматриваете UIViewController. Я создал CGFloat, затем я назначил высоту UITextView для CGFloat. то я возвращаю созданный CGFloat в методе, который вы указали выше. Я выложу свой новый код выше. –
1-я вещь, которую вы должны знать, это то, что вы не устанавливаете высоту для ячейки в 'cellForRowAtIndexpath'. Это должно быть сделано в 'heightForRowAtIndexpath' Вторая вещь заключается в том, что 'heightForRowAtIndexpath' вызывается до 'cellForRowAtIndexpath'. Это означает, что вы должны вычислить высоту ячейки, прежде чем заполнить одну и ту же ячейку. (Таблица должна быть проинформирована о высоте до начала начала ячейки. – dRAGONAIR
Примечание: Все 'UILineBreakMode *' устарели, заменены на' NSLineBreakBy * ' – Raptor