その中UITableViewCell
のコンテンツに基づいて動的にサイズ変更される があります。私は次のようにこれを行いheightForRowAtIndexPath
ます:
- (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;
}
UITextView
これはすべて正常に機能しますが、セルのコンテンツで電話番号、日付/時刻などを検出したいので、これを可能にするには、内にコンテンツが必要だと思いますUITableViewCell
。
UITextView
上記のコードを変更して、動的にサイズを変更し、コンテンツを含むセルに追加するにはどうすればよいですか? UITextView をセル contentView のサブビューとして追加しようとしましたが、期待どおりに機能しないため、サンプルコードの回答をお願いします。