UITableViewCell
サブクラスがありUIView
、そのcontentView
プロパティに a を追加しました。そのサブビューをドラッグできるようにするために、UIResponder
適切なメソッドを実装しました。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint currentLocation = [touch locationInView:self.superview];
if (currentLocation.x >= self.rootFrame.origin.x) {
return;
}
CGRect frame = self.frame;
frame.origin.x = currentLocation.x;
self.frame = frame;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
self.frame = self.rootFrame; // rootFrame is a copy of the initial frame
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
[self touchesEnded:touches withEvent:event];
}
サブビューは問題なくドラッグできますが、セルも選択されているため、それ-tableView:didSelectRowAtIndexPath:
が呼び出されています。
サブビューがドラッグされているときにセルが選択されるのを防ぐにはどうすればよいですか?