我在Swift中将UIImageView子类化,并在其中添加捏,平移,缩放,旋转和点击手势。

我有一个基本的ViewController,并添加了一个新的“PinchZoomImageView”作为子视图。

一切工作正常,但当我更改子类化视图的中心时,“平移手势翻译”略有关闭。

func handlePan(recognizer:UIPanGestureRecognizer) {

    let translation = recognizer.translationInView(self)

    if let view = recognizer.view {
        view.center = CGPoint(x:view.center.x + translation.x, y:view.center.y + translation.y)
    }

    recognizer.setTranslation(CGPointZero, inView: self)
}

平移图像并在屏幕上移动图像后,其边界已关闭。

有想法吗?

最佳答案

解决了!

与其通过视图的center属性(view.center)移动视图,不如通过view.transform(翻译translation.x,translation.y)直接将其移动,而不是通过.center框架来移动它。

func handlePan(recognizer:UIPanGestureRecognizer){

    let translation = recognizer.translationInView(recognizer.view)

    if let view = recognizer.view {
        view.transform = CGAffineTransformTranslate(view.transform, translation.x, translation.y)
    }

    recognizer.setTranslation(CGPointZero, inView: self)
}

关于ios - Swift-具有手势的UIImageView子类-翻译不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32344708/

10-13 03:30