2017-05-25 68 views
0

我正在使用旋转手势识别器来旋转UIView。在我旋转了视图后,平移手势的x和y坐标离开了它们的坐标轴,我看不出为什么。快速旋转手势x和y离轴问题

这里是我当前的手势设置:

open func handleRotate(sender: UIRotationGestureRecognizer) { 
    if sender.state == .began || sender.state == .changed { 

     sender.view?.transform = (sender.view?.transform)!.rotated(by: sender.rotation) 
     sender.rotation = 0 
    } 
} 
@objc fileprivate func handleDrag(sender: UIPanGestureRecognizer) { 

    let translation = sender.translation(in: self) 

    sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y) 
    sender.setTranslation(.zero, in: self) 

} 

所以,当我旋转的UIView x和y平移是关闭(向上移动取决于UIView的的移动的UIView向左或向右转动的状态)。

感谢

+0

尝试设置您的视图的锚点先做旋转前尝试这种'view.layer。 anchorPoint = CGPoint.init(x:0.5,y:0.5)' ' – Bilal

+0

没有用@Bilal – user7684436

回答

0

有相当多的与所提供的代码示例来解压,但对于初学者拖动处理程序设置视图,这可能是一个提示,为什么旋转手势是歪的中心点。

而不是在每个处理程序中独立设置视图的transform属性,如果您修改现有转换,则可能会得到您要查找的结果。

的SO回答here进入多一点深度,可以帮助:

Using multiple UIGestureRecognizers simultaneously like UIRotationGestureRecognizer & UIPanGestureRecognizer in Swift 3