1

スクロールビューに 3 つのビューがあり、これらのサブビューにスワイプ ジェスチャを与えました。
スワイプすると、(CATransform3DMakeRotation)を使用してそのビューを回転させ、同時にスクロールビューをスクロールして、ページの折りたたみ効果を与えています。
期待どおりに動作していますが、サブビューは毎回スワイプを検出していません。

実装後

– gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

– gestureRecognizer:shouldReceiveTouch:

サブビューは毎回スワイプを検出していますが、スクロール アニメーションが機能しません。
ビューの回転アニメーションの最後でスクロールします (アニメーションなし)。

私が使用したコード

    //Animation Code
    [UIView animateWithDuration:3 animations:^(void){

        CATransform3D _3Dt = CATransform3DIdentity;
        _3Dt = CATransform3DConcat(CATransform3DMakeRotation(M_PI, 0.0f, 7.5f, 0.0f), CATransform3DMakeTranslation(0, 0, 0));
        _3Dt.m34 = 0.0015f;

        v.layer.transform = _3Dt;
        //[scroll setContentOffset:CGPointMake(scroll.contentSize.width-300, 0)];
        [scroll scrollRectToVisible:CGRectMake(300, 10, 300, scroll.frame.size.height) animated:NO];

    } completion:^(BOOL finished){}];


and

    //GestureRecognizer Delegate

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{

    return YES;
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    return YES;
}

何か提案してください

4

1 に答える 1

0

試す

[yourGesture setCancelsTouchesInView:NO];

編集

また、アニメーション プロパティを YES に変更します

[scrollView scrollRectToVisible:CGRectMake(300, 10, 300, scroll.frame.size.height) animated:YES];
于 2013-02-06T07:33:53.853 に答える