2010-11-20 19 views
2

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { NSUInteger row = [indexPath row]; if(行== 0) return NO; return YES; }UITableView:編集モードで行を移動する

私の問題は:行0にはNOを指定しましたが、行1をドラッグして行0を置き換えようとすると、アニメーションではこれが起こります。問題は、上記の方法では行の右側に移動アイコンがあるかどうかだけを判断することです。どのように行0を取り替えることを停止するかについての任意のアイデア?

答えて

4

UITableViewDelegateから使用

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath 

あなたはこのような何かを行うことができます。

if ([proposedDestinationIndexPath row] > 0) { 
    return proposedDestinationIndexPath; 
} 

NSIndexPath *betterIndexPath = [NSIndexPath indexPathForRow:1 inSection:0]; 
return betterIndexPath; 

+0

おかげファビアン(ジョー・コンウェイ&アーロン・ヒレガスによる "iPhoneプログラミング" より)!私が探していた正確な方法。 – bogardon

関連する問題