Получить текущую позицию ImageView в Swift - PullRequest
0 голосов
/ 02 апреля 2020

Я впервые пытаюсь быстро создать приложение, поэтому прошу прощения за то, что мое понимание очень ограничено.


После того, как я добавил ImageView в свой ViewController, подключил распознавание Pan Gesture и добавил код, чтобы можно было перемещать ImageView, который работает очень хорошо, теперь я хочу иметь возможность получить текущие координаты середины моего ImageView при его перемещении. Цель состоит в том, чтобы вычислить евклидово расстояние между серединой экрана и серединой ImageView, чтобы обнаружить столкновение с окружностью, которая находится вокруг ImageView, но пока просто возможность печатать координаты действительно Помоги мне. Спасибо за любые советы или советы о том, как я мог бы подойти к этому.

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)
    }

    }


}

1 Ответ

1 голос
/ 02 апреля 2020

Чтобы получить местоположение 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...