gpt4 book ai didi

objective-c - CGAffineTransformmakeScale + 手势

转载 作者:行者123 更新时间:2023-11-28 22:54:40 29 4
gpt4 key购买 nike

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

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

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

求助!谢谢!

//过渡

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

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

}
completion:^(BOOL finished){


}];

最佳答案

如果您要求平移手势识别器在 View 中进行平移,并且 View 已缩放到其自然大小的两倍,则将手指的移动除以二来计算平移。大概这不是您想要的。

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

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

关于objective-c - CGAffineTransformmakeScale + 手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11073930/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com