У меня есть класс, PanAndZoomView
, который наследуется от UIView
и отвечает за один из экранов приложения iOS, над которым я работаю. В проекте есть другие разработчики, поэтому многие другие экраны в приложении не мои, и PanAndZoomView не является экраном ввода.Второе касание игнорируется
I have multiple touch enabled для представления в раскадровке:
и проверить, что с 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
в другом проекте, где он видит несколько проблем без проблем.
Почему второе касание игнорируется?
Как диагностировать мою проблему?
И 'touchs' содержит только один' UITouch'? – Francescu
Да - когда я помещаю 'print' в цикл, перечисляющий' touchhes', есть только один член – dumbledad
. Не могли бы вы попытаться вызвать 'super.touchesBegan (touches, withEvent: event)' в вашей функции? – Francescu