2015-11-25 2 views
0

У меня 2 почти одинаковых крана жестов, как так:Один из двух практически идентичных UITapGestureRecognizers действующих гораздо медленнее, чем другие

let minusGesture = UITapGestureRecognizer(target: self, action: Selector("minusSlider:")) 
minusGesture.numberOfTapsRequired = 1 
downArrowImageView.addGestureRecognizer(minusGesture) 

let plusGesture = UITapGestureRecognizer(target: self, action: Selector("plusSlider:")) 
plusGesture.numberOfTapsRequired = 1 
upArrowImageView.addGestureRecognizer(plusGesture) 

Они вызывают практически одинаковые действия, как так:

func minusSlider(sender: UITapGestureRecognizer) { 
    if mySlider.value > mySlider.minimumValue { 
     mySlider.value -= 1 
    } 
} 

func plusSlider(sender: UITapGestureRecognizer) { 
    if mySlider.value < mySlider.maximumValue { 
     mySlider.value += 1 
    } 
} 

Вот скриншот для контекста. В основном, нажав соответствующую стрелку перемещает ползунок значение вверх или вниз 1.

enter image description here

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

< _UISystemGestureGateGestureRecognizer: 0x17d3aac0>: Touch: Не удалось получить систему жест уведомления о состоянии до того следующее касание

Почему эта ошибка возникает только при жестком нажатии стрелки вниз, а не в стрелке вверх? Ничто другое не отделяет эти два жестов от того, что я написал выше, и того факта, что они находятся на противоположных краях моего взгляда.

+0

Почему вы не используете кнопки вместо изображений и прокси-серверов –

+0

Я получаю одинаковое поведение в обоих направлениях. Попытка понять, почему. – Aaron

+0

Okie. Теперь проверьте этот способ, установите максимальное значение для ползунка по умолчанию, и теперь попробуйте с помощью стрелки вниз и проверьте его работоспособность. затем попробуйте стрелку вверх и посмотрите ее поведение, если его отставание или нет. –

ответ

0
+0

Спасибо, он, казалось, был переопределен автоматическим ударом назад к предыдущему контроллеру представления в стеке навигации – Aaron