我有问题。 有一个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){
}];
答案 0 :(得分: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;
}