
90
|
第
3
章
3.3
在屏幕上拖动图片
问题
如何让用户直接在屏幕上拖动一张图片,使其位置改变?
解决方案
假设
self.draggedView
是一个
UIView
对象。它可以是任何
UIView
子类,但用
UIImageView
更能说明问题:
override func viewDidLoad() {
super.viewDidLoad()
self.draggedView.isUserInteractionEnabled = true
let dragged = #selector(ViewController.dragged(dragGesture:))
let drag = UIPanGestureRecognizer(target: self,
action: dragged)
self.draggedView.addGestureRecognizer(drag)
}
@objc func dragged(dragGesture: UIPanGestureRecognizer) {
if dragGesture.state == .began ||
dragGesture.state == .changed {
var newPosition = dragGesture.translation(in: dragGesture.view)
newPosition.x += dragGesture.view!.center.x ...