Как избежать касания отмененного события?
У меня есть два взгляда один под другим. Я вращаю нижний вид, ощущая прикосновение вида сверху. при попытке выполнить считывание событие отмены касаний вызывается до завершения события касаний. При перемещении касания начинаются касания и вызываются перенесенные события, а затем касания заканчиваются, событие вызывается последним (чаще всего). Но иногда при попытке двигаться медленно событие отмены касаний называется остановкой событий касания. Так что я не мог вращать вид на медленной скорости. В чем может быть проблема? как избежать касаний отмененным событием?
Примечание: я рисую некоторые графики в представлениях с использованием core-plot lib.
4 ответа
Если вы используете какой-либо UIGestureRecognizers
они автоматически отменяют прикосновения к другим представлениям, когда они распознают свой жест. Вы можете отключить это поведение с помощью cancelsTouchesInView
собственность распознавателя.
Если вы не используете UIGestureReconizer напрямую, обратите внимание на свойство жеста-распознавателя UITouch. У меня та же проблема, и с помощью этого кода я решаю ее:
if (event.type == UIEventTypeTouches)
{
NSSet* tmpTouches = [event touchesForView:m_PhotoView];
if ([tmpTouches count] == 2)
{
UITouch *tmpTouch1 = [[tmpTouches allObjects] objectAtIndex:0];
UITouch *tmpTouch2 = [[tmpTouches allObjects] objectAtIndex:1];
if ((tmpTouch1 != nil)&&(tmpTouch2 != nil))
{
UIGestureRecognizer * tmpG;
if ([tmpTouch1.gestureRecognizers count] > 0)
{
tmpG = [tmpTouch1.gestureRecognizers objectAtIndex:0];
tmpG.cancelsTouchesInView = NO;
}
if ([tmpTouch2.gestureRecognizers count] > 0)
{
tmpG = [tmpTouch2.gestureRecognizers objectAtIndex:0];
tmpG.cancelsTouchesInView = NO;
}
// Code ...
}
}
}
Также обратите внимание на UISwipeGestureRecognizer. Это было причиной проблемы для меня и решается, как только мы установим
[recognizer setCancelsTouchesInView:FALSE];
Если используется представление с прокруткой, снимите флажок с содержимым его свойства и нажмите " Отменить при прокрутке" в окне истории.