0

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];

「次の」メソッドの関連コードを次に示します。

-(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];

そしてここに、完全を期すために、私の接続の写真があります:

私のつながり

私が間違っているかもしれないことについて何か考えはありますか?

4

1 に答える 1

3

init 時に、両方のレコグナイザーに同じセレクターを使用viewDidLoadしています。nextHaikyこれにより、IB で作成したバインディングが上書きされます

適切なUISwipeGestureRecognizerinit を変更して問題を修正します

于 2012-08-14T23:51:27.033 に答える