У меня есть UITableViewCell
, который динамически зависит от содержания в нем. Я делаю это в heightForRowAtIndexPath
следующим образом:Как добавить UITextView в этот UITableViewCell?
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 1 && indexPath.row == 1) {
NSDictionary *fields = self.messageDetailsDictionary[@"fields"];
NSString *cellText = fields[@"message_detail"];
UIFont *cellFont = [UIFont systemFontOfSize:14.0];
CGSize constraintSize = CGSizeMake(self.tableView.frame.size.width - 50.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
return labelSize.height + 20.0f;
} else {
return tableView.rowHeight;
}
}
В cellForRowAtIndexPath
я настроить ячейку следующим образом:
case 1:{
UITableViewCell *cell = [[UITableViewCell new] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DetailCell"];
if (cell == nil) {
cell = [[UITableViewCell new] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DetailCell"];
}
NSDictionary *fields = self.messageDetailsDictionary[@"fields"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.textLabel.lineBreakMode = NSLineBreakByWordWrapping;
cell.textLabel.font = [UIFont systemFontOfSize:14.0];
cell.textLabel.numberOfLines = 0; // This means multiline
cell.textLabel.text = fields[@"message_detail"];
return cell;
}
Это все работает отлично, но я хочу, чтобы содержимое ячейки, чтобы обнаружить телефонные номера, даты/times и т. д. Поэтому я думаю, что мне нужно иметь контент в UITextView
в пределах UITableViewCell
, чтобы сделать это возможным.
Как я могу динамически размер UITextView
и добавить его в ячейку с содержимым, изменив мой код выше? Образец кода, пожалуйста, с ответами, потому что я уже пытался добавить UITextView в качестве поднабора содержимого contentView, но он не работает так, как я ожидал.