我有一个问题。有一个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 已缩放到其自然大小的两倍,则将手指的移动除以二来计算平移。大概这不是您想要的。
请求平移手势识别器在Chưa缩放的 View 中进行翻译。我假设您的缩放 View 具有未转换的 super View 。尝试将其用作手势识别器的操作:
- (IBAction)pan:(UIPanGestureRecognizer *)panner {
UIGestureRecognizerState state = panner.state;
if (state != UIGestureRecognizerStateChanged && state != UIGestureRecognizerStateEnded)
trở lại;
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;
}
Tôi là một lập trình viên xuất sắc, rất giỏi!