ええと、ドキュメントをざっと見ると、必要以上に多くの作業を行っていることがわかります。
"方向スワイプの許可された方向。
@property(nonatomic) UISwipeGestureRecognizerDirection direction
UISwipeGestureRecognizerDirection
説明ビットごとのORオペランドを使用して複数の定数を指定することにより、複数の方向を指定できます。デフォルトの方向はUISwipeGestureRecognizerDirectionRight
。」
つまり、2つのUISwipeGestureRecognizersを使用する代わりに、次のことを実行できます。
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSwipeGesture:)];
swipeGesture.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft;
そしてあなたの行動方法では:
-(IBAction)handleSwipeGesture:(UISwipeGestureRecognizer*)sender
{
if (sender.direction == UISwipeGestureRecognizerDirectionLeft) {
//do left action
} else {
//do right action
}
}
はるかに単純で、競合する可能性がはるかに低くなります。