我在Swift中继承了UIImageView,并在其中添加了Pinch,Pan,Zoom,Rotate和Tap Gestures。
我有一个基本的ViewController,并添加了一个新的“PinchZoomImageView”作为子视图。
一切正常,但是当我更改子视图的中心时,Pan Gesture Translate略有偏差。
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)
}
平移图像并在屏幕上移动图像后,它的界限已关闭。
想法?
答案 0 :(得分:3)
解决了!
不是通过它的中心属性(view.center)移动视图,而是使用view.transform(翻译translation.x,translation.y)移动视图,该视图直接作用于视图而不是通过.center框架。
func handlePan(识别器: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)
}