2016-08-10 5 views
0

У меня длинный жест нажатия, который представляет другой контроллер. В представленном контроллере у меня есть touchBegan(), touchsMoved() и touchedEnded(), которые обнаруживают касание контроллера вида.Передача касания к другому контроллеру представления (iOS)

Когда я долгое время нажимаю и удерживаю нажатой, отображается следующий контроллер вида. Если я не отпускаю длинное нажатие и не двигаю пальцем по экрану, метод touchhesMoved() не вызывается, и когда я перестаю касаться, touchsEnded() не вызывается. Однако, когда я отпускаю длинное нажатие и снова касаюсь его, эти методы будут вызываться, поскольку длинный распознаватель жестов нажатия больше не получает прикосновение, и, скорее, представленный контроллер представления получает штрихи.

Есть ли в любом случае представленный экран для распознавания штрихов, при этом нажимая длительное нажатие? Как передать этот длинный распознаватель нажатия на следующий контроллер вида?

ответ

1

Распознаватель жестов существует на вид. Когда вы представляете другой контроллер вида, просмотр которого временно исчез. Его исчезновение вызывает эту проблему. Решение состоит в том, чтобы на самом деле не представлять другой контроллер представления, а симулировать его. Представьте свой первый вид на вашем первом контроллере представления (мы будем называть это view1). Создайте другое представление точного размера и поместите его сверху (мы будем называть это view2). Поместите распознаватель жестов в view2. Пользователь долго нажимает на экран. Несмотря на то, view2 получил штрихи вы можете узнать, где пользователь прикоснулся в view1 следующим образом:

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { 
    if let touch = touches.first { 
     let position :CGPoint = touch.locationInView(view1) 
    } 
} 

На этом этапе вы можете анимировать в View3 за View2 и перед view1. Это даст эффект перехода на новый экран, однако представление, получающее команды касания, никогда не уходило и все еще слушает команды.

+0

Хороший ответ! больной дайте ему шанс! спасибо –

Смежные вопросы