2016-01-06 3 views
0

У меня есть класс, PanAndZoomView, который наследуется от UIView и отвечает за один из экранов приложения iOS, над которым я работаю. В проекте есть другие разработчики, поэтому многие другие экраны в приложении не мои, и PanAndZoomView не является экраном ввода.Второе касание игнорируется

I have multiple touch enabled для представления в раскадровке:

xcode screenshot

и проверить, что с print заявлением в следующем методе

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    print("TouchesBegan, multipleTouchEnabled = \(self.multipleTouchEnabled)") 
    let newTouches:Set<UITouch> = touches.subtract(self.touchesBeingTracked) 
    for touch:UITouch in newTouches { 
     self.initialTouches[touch] = touch.locationInView(self) 
     self.initialScale = self.contentsView.transform.a 
     self.initialTranslation = CGVector(dx: self.contentsView.transform.tx, dy: self.contentsView.transform.ty) 
    } 
    self.touchesBeingTracked.unionInPlace(touches) 
    self.touchesBeingTrackedPeakCount = touchesBeingTracked.count 
    self.segmentationView.containerTouchesBegan(touches, withEvent: event) 
} 

Однако PanAndZoomView только регистрирует мой первый контакт, т.е. вышеупомянутый метод срабатывает один раз независимо от того, сколько пальцев я касаюсь экрана.

Мой подход следует за Apple's documentation, и я использую тот же класс PanAndZoomView в другом проекте, где он видит несколько проблем без проблем.

Почему второе касание игнорируется?

Как диагностировать мою проблему?

+0

И 'touchs' содержит только один' UITouch'? – Francescu

+0

Да - когда я помещаю 'print' в цикл, перечисляющий' touchhes', есть только один член – dumbledad

+0

. Не могли бы вы попытаться вызвать 'super.touchesBegan (touches, withEvent: event)' в вашей функции? – Francescu

ответ

0

Это была проблема с подменю.

Хотя код UIView (PanAndZoomView в моем коде), обрабатывающий события с несколькими касаниями, был отмечен в раскадровке как «множественное касание включен», его двух подзатух не было. Помечая их как многократное нажатие, исправляет это так, что теперь PanAndZoomView получает второе касание.

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