2016-05-11 4 views
0
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ 

    UITouch *touch = [touches anyObject]; 
    if (touch.tapCount == 1) 
    { 
     [UIView animateWithDuration:0.3 animations:^{ 
     UIImage *image=[UIImage imageNamed:@"view1.png"]; 
     imageView.image=image; 
     [self.view addSubview:imageView]; 
    } completion:nil]; 

} 

else if(touch.tapCount == 2) 
{ 
    [UIView animateWithDuration:0.3 animations:^{ 
     UIImage *image=[UIImage imageNamed:@"view2.png"]; 
     imageView.image=image; 
     [self.view addSubview:imageView]; 
    } completion:nil]; 

    } 

} 

これは私の方法ですが、欲しいです。 ダブルクリックすると2番目のビューが表示され、タップジェスチャーも使用されますが、同じです。このようなシーンを作成する方法:画面をタッチすると、firstViewが表示され、画面をもう一度タッチすると、画面にiosの2番目のビューが表示されます。

+0

私の回答のヘルプ? –

+0

はい、それは本当に働いて、ありがとう!しかし、私は多くの見方を示している場合、より簡単な方法がありますか? – WPEvergreen

+0

One after One? –

答えて

0

シングルとダブルタップを処理するために、適切にグローバル

@property(nonatomic) BOOL isFirstViewAdded

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ 

    UITouch *touch = [touches anyObject]; 
    if (!self.firstViewAdded) 
    { 
    self.firstViewAdded = true; 
    [UIView animateWithDuration:0.3 animations:^{ 
    UIImage *image=[UIImage imageNamed:@"view1.png"]; 
    imageView.image=image; 
    [self.view addSubview:imageView]; 
} completion:nil]; 

} 

else if(self.firstViewAdded) 
{ 
[UIView animateWithDuration:0.3 animations:^{ 
    UIImage *image=[UIImage imageNamed:@"view2.png"]; 
    imageView.image=image; 
    [self.view addSubview:imageView]; 
} completion:nil]; 

} 

} 
0

タップジェスチャーnumberOfTapsRequirednumberOfTouchesRequiredが必要です。さらに、 (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event は、UIButtonタッチイベントを含むすべてのタッチイベントを取得しますが、タップジェスチャは取得できません。

0

使用Tap gesture recogniserブール値を作成します。

UITapGestureRecognizer *singleTapGesture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapAction::)]; 
singleTapGesture.numberOfTapsRequired=1; 
[self.view addGestureRecognizer:_singleTap]; 

UITapGestureRecognizer *doubleTapGesture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapAction:)]; 
doubleTapGesture.numberOfTapsRequired = 2; 
[singleTapGesture requireGestureRecognizerToFail:doubleTapGesture]; 
[self.view addGestureRecognizer:_singleTap]; 


- (void)singleTapAction:(UITapGestureRecognizer *)gestureRecognizer { 
    [UIView animateWithDuration:0.3 animations:^{ 
     UIImage *image=[UIImage imageNamed:@"view1.png"]; 
     imageView.image=image; 
     [self.view addSubview:imageView]; 
    } completion:nil]; 

} 

- (void)doubleTapAction:(UITapGestureRecognizer *)gestureRecognizer { 
    [UIView animateWithDuration:0.3 animations:^{ 
     UIImage *image=[UIImage imageNamed:@"view2.png"]; 
     imageView.image=image; 
     [self.view addSubview:imageView]; 
    } completion:nil]; 
} 

これが役立ちます。

+0

私はすでにあなたの方法を試してみましたが、すぐに2度タップしなければなりません。それで2番目のビューが表示されます – WPEvergreen

+0

肉はシングルタップとダブルタップを扱うことができませんでした。 1タップごとに異なるビュー – WPEvergreen

+0

が表示されます。@PKTアプローチを使用している場合は、何度も何度もサブビューとして画像ビューを追加しないでください。サブビューを1回だけ追加してから、タッチするたびにイメージのみを変更します。 –

関連する問題