2011-02-21 3 views
1

Я вызываю heightForRowAtIndexPath для настройки моих ячеек. Когда я редактирую вид таблицы для удаления ячеек, высота ячеек остается фиксированной, поэтому ячейки перекрываются, что создает не очень привлекательный образ. Я хотел бы знать, как изменить высоту ячейки при удалении ячеек.Вызов heightForRowAtIndexPath при удалении ячеек из UITableView

Это мой текущий код

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 

Favorites *favorite = [fetchedResultsController objectAtIndexPath:indexPath]; 
NSString *cellText = favorite.name; 
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0]; 

CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT); 

CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap]; 

return labelSize.height + 20; 

}

Любая помощь будет оценен по достоинству! Благодаря

ответ

0
- (void)tableView:(UITableView *)tableView commitEditingStyle: UITableViewCellEditingStyle)editingStyle 
     forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { 
     [tableView reloadTable]; 
    } 
} 

и вы можете изменить свойство, которое будет сказать и хотите правильную высоту, и прочитать его значение из heightForRowAtIndexPath

0

Ваша проблема в том, что если numberOfLines является 0 для ярлыка в клетке (что это вероятно, так, что ваша ячейка может расширяться), тогда ярлык будет расширяться снова, когда удаляются слайды, вызывая уродливое перекрытие. Достойной альтернативой является усечение текста при включении слайда. Для этого вам нужно установить количество строк при создании ячейки.

cell.textLabel.numberOfLines = textLabelheight/textLabelFontSize; 

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

Смежные вопросы