3

ジェスチャ認識インスタンスを持つセル内の UI オブジェクトはほとんどありません。押すオブジェクトがあるセルを取得する必要があります。私はそれを取得するための以下の方法を持っていますが、それは iOS 7 の前に動作します:

UITableViewCell *cell = (UITableViewCell *)[[[sender view] superview]superview];

iOS 6 の場合は戻りますUITableViewCell

iOS 7 の場合は戻りますUITableViewCellScrollView

iOS 7 では、新しいセルにビューがいくつか追加されていると思いUITableViewCellScrollViewますUITableViewCell

4

3 に答える 3

10

The best way to get a table view cell from it's subview is to convert the subview's location to a location in the table view, then ask the table view for the index path of the cell at that point:

CGPoint subviewPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath* indexPath = [self.tableView indexPathForRowAtPoint:subviewPosition];

Then, you can get the cell for that index path:

UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:indexPath];
于 2013-09-30T17:52:09.880 に答える
3

ご覧のとおり、ビュー階層に依存するのは良い方法ではありません。Apple はいつでもそれを壊すことができます。

デリゲート プロトコルを使用して、セルをコントローラーに接続する必要があります。

于 2013-09-30T17:51:54.417 に答える