获取 ImageView 在 swift 中的当前位置

Get current position of ImageView in swift

这是我第一次尝试在 swift 中构建应用程序,所以请原谅我的理解非常有限。


在我向我的 ViewController 添加一个 ImageView 之后,连接了一个 Pan Gesture Recognition 并添加了能够移动 ImageView 的代码,效果很好,我现在希望能够获得移动它时我的 ImageView 中间的当前坐标。目标是能够计算屏幕中间和 ImageView 中间之间的欧几里得距离,以便检测与 ImageView 周围的 Circle 的碰撞,但就目前而言,仅仅能够打印坐标就真的帮我。感谢您提供有关如何处理此问题的任何建议或提示。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }


    @IBOutlet weak var questImg: UIImageView!

    @IBAction func panMade(_ sender: UIPanGestureRecognizer) {
        if sender.state == .began || sender.state == .changed {
                   let translation = sender.translation(in: sender.view)
                   let changeX = (sender.view?.center.x)! + translation.x
                   let changeY = (sender.view?.center.y)! + translation.y

                   sender.view?.center = CGPoint(x: changeX, y: changeY)
                   sender.setTranslation(CGPoint.zero, in: sender.view)
    }

    }


}

要获取 UIImageView 的位置,您可以使用 frame.origin,如下所示:

@IBAction func panMade(_ sender: UIPanGestureRecognizer) {
    if sender.state == .began || sender.state == .changed {
               let translation = sender.translation(in: sender.view)
               let changeX = (sender.view?.center.x)! + translation.x
               let changeY = (sender.view?.center.y)! + translation.y

               var coordX = questImg.frame.origin.x
               var coordY = questImg.frame.origin.y
               print(coordX + "," + coordY)

               sender.view?.center = CGPoint(x: changeX, y: changeY)
               sender.setTranslation(CGPoint.zero, in: sender.view)
}