2011-02-21 6 views
1

heightForRowAtIndexPathを呼び出してセルを調整しています。セルを削除するためにテーブルビューを編集すると、セルの高さが固定され、セルが重なり、非常に魅力的なイメージにならないようになります。私は細胞の削除が始まるときに細胞の高さをどのように変えるかを知りたい。UITableViewからセルを削除するときにheightForRowAtIndexPathを呼び出す

これは、任意の助けが理解されるであろう私の現在のコード

- (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]; 
    } 
} 

、あなたはuは右の高さをしたい教えてくれますプロパティを変更し、あなたの問題は、そのnumberOfLinesがあなたのセルにラベル0の場合は(それであるheightForRowAtIndexPath

0

から値を読み取ることができますおそらくあなたのセルが拡大できるようになっています)、削除がスライドするとラベルが再び拡大して、醜いオーバーラップが発生します。有益な選択肢は、削除スライドが入ったときにテキストを切り捨てることです。これを行うには、セルを作成するときに行数を設定する必要があります。

cell.textLabel.numberOfLines = textLabelheight/textLabelFontSize; 

あなたはおそらくすでにあなたは、セルの高さを調整するとき、あなたがそれを働いたCOS、textLabelHeightとtextLabelFontSizeを知っています。

関連する問題