2013-02-20 3 views
0

У меня есть 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, но он не работает так, как я ожидал.

ответ

0

При создании ячейки, вам нужно добавить TextView как его подвид, и нет необходимости, чтобы установить размер TextView отдельно. Вам просто нужно добавить значения маржи при возврате высоты для строки в

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
Смежные вопросы