Вот мой код в cellForRowAtIndexPath делегата:UITextView встроенный в UITableViewCell не изменение размера правильно
Status *status = nil;
status = [myArray objectAtIndex:indexPath.row];
NSString* postvalue = status.statusContent;
cell.postContent.scrollEnabled = NO;
CGSize mysize = [postvalue sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17.0f]}];
CGRect frame = cell.postContent.frame;
frame.size.height = mysize.height;
cell.postContent.frame = frame;
cell.postContent.text = postvalue;
Где cell.postContent является TextView
И вот мой код, который изменяет размер клетки:
-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath {
Status *status = nil;
status = [myArray objectAtIndex:indexPath.row];
NSString* postvalue = status.statusContent;
return 100 + [self heightForText:postvalue];
}
-(CGFloat)heightForText:(NSString *)text
{
NSInteger MAX_HEIGHT = 2000;
UITextView * textView = [[UITextView alloc] initWithFrame: CGRectMake(0, 0, 226, MAX_HEIGHT)];
textView.text = text;
textView.font = [UIFont systemFontOfSize:17.0f];// your font
[textView sizeToFit];
return textView.frame.size.height;
}
Это то, что это приводит к:
Я заменил имя пользователя высотой, вычисленной в делегате cellForRow .., чтобы вы могли видеть, что высота вычисляется правильно, и ячейка правильно изменяет размер, но текстовое изображение отсутствует - есть немало больше строк, чем вы не видите. Есть идеи?
Благодаря
попробуйте установить кадр в самой подклассовой ячейке ... –
У меня нет доступа к содержимому ячейки оттуда @Shan –
Вы можете вернуть соответствующую высоту (высота вашего текстового вида + заполнение) в - (CGFloat) tableView : (UITableView *) tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath. – jailani