Я выполнил инструкции, которые мне удалось найти в stackoverflow, чтобы исправить следующее, но никто из них не работал. Ниже мой код:Настройка высоты UITableViewCell и текстовой метки ячейки на основе высоты текста
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"DoCCell";
DoCCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[DoCCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
CGSize constraintSize = CGSizeMake(cell.infoLabel.frame.size.width, MAXFLOAT);
CGSize labelSize = [_content[[indexPath row] * 2] sizeWithFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:12.0f]
constrainedToSize:constraintSize
lineBreakMode:NSLineBreakByWordWrapping];
CGRect frame = CGRectMake (cell.infoLabel.frame.origin.x, cell.infoLabel.frame.origin.y, labelSize.width, labelSize.height);
[cell.infoLabel setFrame:frame];
cell.infoLabel.lineBreakMode = NSLineBreakByWordWrapping;
cell.infoLabel.numberOfLines = 10;
_font = cell.infoLabel.font;
cell.infoLabel.text = _content[[indexPath row] * 2];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize size = [_content[[indexPath row] * 2] sizeWithFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:12.0f]
constrainedToSize:constraintSize
lineBreakMode:NSLineBreakByWordWrapping];
return size.height + 30.0;
}
, но когда я запускаю мой код, высота ячеек изменяется соответствующим образом в то время как размер этикетки нет.
Ячейка - это пользовательская ячейка, и я добавил ярлык через .xib-файл. Я попробовал вручную растягивать ярлык, который работал в том смысле, что он отобразит весь текст, чтобы проблема не заключалась в упаковке этикетки. Я также проверил cell.infoLabel.frame.size.height и значение высоты DOES изменилось с высотой ячейки до значения, но оно не отображается как таковое. Что я делаю не так?
ОК у меня теперь есть '// Настройка ячейки ... _font = cell.infoLabel.font; cell.infoLabel.text = _content [[indexPath row] * 2]; cell.infoLabel.numberOfLines = 0; [cell.infoLabel sizeToFit]; 'но он все еще не работает –
Я не уверен, но можете ли вы попробовать удалить режим линии для метки, в частности, можете просто прокомментировать эту строку и еще раз проверить: cell.infoLabel.lineBreakMode = NSLineBreakByWordWrapping; – An1Ba7
это тоже не работает. [Здесь] (http://imgur.com/A2aRkQJ) - это то, что детали ярлыка находятся в .xib, если это помогает. –