Перетаскивание пользовательского интерфейса в виде прокрутки - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть вид прокрутки, который содержит вид изображения.Я добавляю к этому изображению некоторый UIview, который я хочу перетащить в область изображения.

Я уже использую UIPanGestureRecognizer ( Draggable UIView Swift 3 ), но он не работает.

@IBOutlet weak var mapImage: UIImageView!
@IBOutlet weak var scrollView: UIScrollView!
 override func viewDidLoad() {
        let viewDemo = UIView()
        scrollView.minimumZoomScale = 1.0
        scrollView.maximumZoomScale = 6.0
        let panGesture = UIPanGestureRecognizer(target: self, action: 
        #selector(moveObject(_:)))
        viewDemo.frame = CGRect(x: 50, y: 50, width: 40, height: 40)
        viewDemo.backgroundColor = .red
        viewDemo.layer.cornerRadius = 20
        viewDemo.isUserInteractionEnabled = true
        viewDemo.addGestureRecognizer(panGesture)
        mapImage.addSubview(viewDemo)

}
   @objc func moveObject(_ gesture: UIPanGestureRecognizer){

        //1. Check That We Have A Valid Draggable View
        guard let draggedObject = gesture.view else { return }

        if gesture.state == .began || gesture.state == .changed {

            //2. Set The Translation & Move The View
            let translation = gesture.translation(in: self.view)
            draggedObject.center = CGPoint(x: draggedObject.center.x + translation.x, y: draggedObject.center.y + translation.y)
            gesture.setTranslation(CGPoint.zero, in: self.view)


        }else if gesture.state == .ended {

        }
    }

moveObject не выполняется, когда я перетаскиваю UIview.Я уже пытался отключить прокрутку прокрутки с помощью scrollView?.isScrollEnabled = false

1 Ответ

2 голосов
/ 15 апреля 2019

Вы должны включить взаимодействие с пользователем вашего UIImageView.

mapImage.isUserInteractionEnabled = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...