0

私はカスタムセルを含むテーブルを持っています。これにはサブクラスがUITableViewCellsあり、使用するコントロールタッチ用ですUITouch(このチュートリアルに基づくコードhttp://gregprice.co.uk/blog/?p=280touchesEnded )メソッド内にセルのインデックスを取得する必要があります。触る。

私は試してみます:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

   //some code

   UITableView *parentTable = (UITableView *)self.superview;
   NSIndexPath *index = [NSIndexPath alloc];
   index = [parentTable indexPathForSelectedRow];
   NSLog(@"Call, x= %f, index=%d", xPos, index.row);

}

しかし、常にindex=0を持っています。

私は何を間違えますか?

4

2 に答える 2

0

これが問題の原因であるかどうかはわかりませんが、ここにいるように「alloc」と呼ぶのは悪い習慣です。allocを使用して行を削除し(これにより、初期化または使用していないオブジェクトのメモリが作成されるため)、NSIndexPathオブジェクトをインラインで定義します。

UITableView *parentTable = (UITableView *)self.superview;
NSIndexPath *index = [parentTable indexPathForSelectedRow];
NSLog(@"Call, x= %f, index=%d", xPos, index.row);
于 2013-03-11T15:12:46.467 に答える
0

UITableViewで行を選択する方法について非常に慎重に取り組んでいるようです。UITableViewのデリゲートとデータソースを作業中のクラスに設定してから、UITableViewDelegateおよびUITableViewDataSourceリファレンスにあるプロトコルメソッドを実装します。これが完了したら、このメソッドを使用して、テーブルで選択された行を判別できます。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}

多分あなたはすでにこれを知っていましたが、あなたはiOS開発に不慣れであるように思えます、そして私はあなたが手動でそれをそのようにしたいと思う理由がわかりません。

また、デイブ・レバートンの答えが言ったように、そのような割り当てをしないでください

于 2013-03-11T15:37:47.320 に答える