как передать координаты для отображения изображения при долгом нажатии - PullRequest
0 голосов
/ 26 мая 2020

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

Мой код:

let longRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(longPressHappened))
    view.addGestureRecognizer(longRecognizer)

 @objc func longPressHappened() {
    let imageView = UIImageView(image: UIImage(named: "location")!)
    imageView.frame = CGRect(x: 200, y: 100, width: 24, height: 42)
    CSimageView.addSubview(imageView)
  }

Я нашел этот код, но не понимаю, как чтобы применить его в моей проблеме:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    if let touch = touches.first {
        let position = touch.location(in: view)
        print(position)
    }
}

Теперь долгое нажатие работает, но отображается в координатах, указанных в коде, для x число 200, для y число 100. И я нужно, чтобы изображение появилось там, где я щелкнул.

1 Ответ

1 голос
/ 26 мая 2020

Попробуйте приведенный ниже код, в котором вы долго нажимаете, чтобы добавить изображение.

Я добавил жест и изображение для просмотра.

override func viewDidLoad() {

      let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(longPressed))
       self.view.addGestureRecognizer(longPressRecognizer)

}


//This method will get called when you long press
    @objc func longPressed(gesture: UILongPressGestureRecognizer)
    {
        //get location of gesture
        let tapLocation = gesture.location(in: self.view)
        let imageView = UIImageView(image: UIImage(named: "location"))

        //Set x and y of tapped location
        imageView.frame = CGRect(x: tapLocation.x, y: tapLocation.y, width: 24, height: 24)
        print("longpressed")

         //Add image When lognpress is finish
        if gesture.state == .ended {
            self.view.addSubview(imageView)
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...