Я пытаюсь динамически пересчитать высоту ячейки, которая содержит UITextView
. Высота ячейки зависит от высоты UITextView.Динамическая высота ячейки iOS
Исходный код ниже пересчитывает высоту для каждой ячейки таблицы. Это текст с NSDictionary
. После того, как все высоты пересчитаны, я перезагружу свой вид таблицы с новой высотой, которая содержится в массиве heightCells;
UITextView *tempTextView = [[UITextView alloc] init];
UIFont *font = [UIFont fontWithName:@"Helvetica" size:16.0];
[tempTextView setFrame:CGRectMake(10, 63, 300, 9999)];
[tempTextView setFont:font];
NSString *str = [d valueForKey:@"definition"]; // set long text
tempTextView.text = str;
CGRect frame = tempTextView.frame;
frame.size.height = tempTextView.contentSize.height + 20.0;
tempTextView.frame = frame;
[tempTextView sizeToFit];
int height = tempTextView.frame.size.height + 150.0; // set padding 150.0 px
[heightCells addObject:[NSNumber numberWithFloat:height]];
UITableView
метод:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return [[heightCells objectAtIndex:indexPath.row] floatValue];
}
На не сетчатке дисплей все работает хорошо, и высота пересчитывается правильно, но на дисплее сетчатки у меня есть проблемы с пересчетом. Я знаю, что сетчатка и не сетчатки имеют один вид 320x480 точек, и это не должно влиять на пересчет. Но в моем случае это появляется.
См. Снимок экрана ниже. Как вы можете видеть на скриншоте, нижнее дополнение после кнопки совместного доступа отличается от сетчатки и не отображает сетчатки. И я не знаю, какая из них эта проблема.
Спасибо за помощь!