Objective c I';我已经设置了两个UIgestureRecognitor,但只有右击有效——左击无效

Objective c I';我已经设置了两个UIgestureRecognitor,但只有右击有效——左击无效,objective-c,xcode,ios5,swipe,Objective C,Xcode,Ios5,Swipe,Noob正在开发一个应用程序,该应用程序显示从数组中随机选择的短文本——用户每次滑动时都会显示一个新文本。我用的是“上一个”和“下一个”按钮,效果很好。然后我添加了滑动,右滑动(从左)产生“上一个”,左滑动(从右)产生“下一个”,但在这两种情况下,动画都是从右向左滑动。然后我完全去掉了按钮,左右滑动都产生了“下一步”——无法得到“上一步”——再次,只有从右向左滑动的动画 以下是viewDidLoad中的相关代码: UISwipeGestureRecognizer *swipeRight = [[

Noob正在开发一个应用程序,该应用程序显示从数组中随机选择的短文本——用户每次滑动时都会显示一个新文本。我用的是“上一个”和“下一个”按钮,效果很好。然后我添加了滑动,右滑动(从左)产生“上一个”,左滑动(从右)产生“下一个”,但在这两种情况下,动画都是从右向左滑动。然后我完全去掉了按钮,左右滑动都产生了“下一步”——无法得到“上一步”——再次,只有从右向左滑动的动画

以下是
viewDidLoad
中的相关代码:

UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(nextHaiku)];
swipeRight.numberOfTouchesRequired = 1;
swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeRight];
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(nextHaiku)];
swipeLeft.numberOfTouchesRequired = 1;
swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeLeft];
下面是“next”方法的相关代码

-(无效)下一代
{
CATTransition*transitionR=[CATTransition动画];
过渡r.持续时间=0.25;
transitionR.timingFunction=[CamediaTimingFunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transitionR.type=kCATransitionPush;
transitionR.subtype=kCATransitionFromRight;
transitionR.delegate=self;
[self.view.layer addAnimation:transitionR forKey:nil];
[self.view addSubview:self.haiku_text];
}
同样,这里有“先前的”方法

-(void)以前的俳句
{
CATTransition*转换=[CATTransition动画];
过渡时间=0.25;
transition.timingFunction=[CamediaTimingFunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type=kCATransitionPush;
transition.subtype=kCATransitionFromRight;
transition.delegate=self;
[self.view.layer addAnimation:transition-forKey:nil];
[self.view addSubview:self.haiku_text];
为了彻底起见,这里有一张我的联系照片:


关于我可能做错了什么有什么想法吗?

viewDidLoad
中,初始化时两个识别器使用相同的选择器
nextHaiky
。这将覆盖您在IB中进行的绑定


更改相应的
UISweepGestureRecognitizer
init以解决问题
viewDidLoad
中的问题。初始化时,您正在为两个识别器使用相同的选择器
nextHaiky
。这将覆盖您在IB中进行的绑定


更改相应的
UISweepGestureRecognitizer
init以解决问题

哦,我的天啊。我是个白痴。谢谢!哦,我的天啊。我是个白痴。谢谢!
-(void)nextHaiku
{
<...a bunch of code setting up the UItextView 'haiku_text'...>

CATransition *transitionR = [CATransition animation];
transitionR.duration = 0.25;
transitionR.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transitionR.type = kCATransitionPush;
transitionR.subtype =kCATransitionFromRight;
transitionR.delegate = self;
[self.view.layer addAnimation:transitionR forKey:nil];
[self.view addSubview:self.haiku_text];
}
-(void)previousHaiku
{
<...a bunch of code setting up the UITextView haiku_text...>
        CATransition *transition = [CATransition animation];
        transition.duration = 0.25;
        transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
        transition.type = kCATransitionPush;
        transition.subtype =kCATransitionFromRight;
        transition.delegate = self;
        [self.view.layer addAnimation:transition forKey:nil];
        [self.view addSubview:self.haiku_text];