【问题标题】:CGAffineTransformScale + GesturesCGAffineTransform 比例+手势
【发布时间】:2012-06-17 18:50:18
【问题描述】:

我有问题。 有一个uiview,通过手势控制(可以水平移动)。 虽然这个 uiview 很小,但一切都很好。

使用 CGAffineTransformScale 对其进行缩放后,陌生感开始了: 潘开始奇怪地工作——变得不是很敏感。 所以在更大的状态下,我可以在PAN开始工作之前在1.5厘米的范围内移动手指。 之后,一切正常(UIView 用手指拖动),但不是很顺利。

我认为在 CGAffineTransformScale 之后增加了一些东西,它负责手势。 如果我缩小视图,手势就会开始正常工作。

请帮忙! 谢谢!

// 过渡

[UIView transitionWithView:pagesView   
                  duration:0.25  
                   options:UIViewAnimationOptionCurveEaseOut + UIViewAnimationOptionAllowUserInteraction + UIViewAnimationOptionBeginFromCurrentState
                animations:^{

                    pagesView.transform = CGAffineTransformScale(pagesView.transform, kResize, kResize);

                }   
                completion:^(BOOL finished){


                }];

【问题讨论】:

    标签: objective-c ios transform cgaffinetransform gestures


    【解决方案1】:

    如果您向平移手势识别器询问其在视图中的平移,并且视图已缩放到其自然大小的两倍,则您的手指移动除以 2 来计算平移。大概这不是你想要的。

    请求平移手势识别器在未缩放的视图中进行平移。。我假设您的缩放视图具有未转换的超级视图。尝试将其用作手势识别器的操作:

    - (IBAction)pan:(UIPanGestureRecognizer *)panner {
        UIGestureRecognizerState state = panner.state;
        if (state != UIGestureRecognizerStateChanged && state != UIGestureRecognizerStateEnded)
            return;
        UIView *movingView = panner.view;
        UIView *referenceView = movingView.superview;
        CGPoint offset = [panner translationInView:referenceView];
        [panner setTranslation:CGPointZero inView:referenceView];
        CGPoint center = movingView.center;
        center.x += offset.x;
        center.y += offset.y;
        movingView.center = center;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多