2015-01-15 2 views
0

У меня есть приложение для рисования, в котором я загружаю изображение в UIImageView и использую touchhesBegan, touchsMoved и touchEnded, чтобы рисовать простые строки. Я переместил UIImageView в UIScrollView, чтобы пользователь мог увеличить масштаб чертежа. Теперь, после загрузки изображения, если пользователь попытается сразу начать рисовать (в течение нескольких секунд после того, как изображение станет видимым), touchBegan не срабатывает. Если пользователь ждет 2 или 3 секунды, чтобы начать рисовать, все работает так, как ожидалось.UIScrollView не получает события касания сразу после появления

Я пробовал установить delaysContentTouches=NO без эффекта. Я также внедрил touchesShouldBegin:, но этот метод вызывается только тогда, когда вызывается touchBegan (и рисунок работает правильно). Другие решения, которые я видел (например, включение взаимодействия с пользователем и использование hitTest, чтобы убедиться, что это происходит в ожидаемом представлении), похоже, не применяются в моем случае, поскольку все работает как ожидается через 2-3 секунды. Должны ли быть какие-либо другие вопросы времени, о которых я должен знать?

ответ

0

Попробуйте это:

scrollView.canCancelContentTouches = NO; 

Если у вас есть какие-либо жесты, вы должны использовать это возможно:

gestureRecognizer.cancelsTouchesInView = false; 
+0

Я попробовал оба, но не было никаких изменений. – jenonen

+0

У меня была проблема с Sprite Kit при попытке выбрать нужный объект, но в этом случае. вы пытаетесь рисовать сразу после перемещения изображения. Вам нужно будет найти работу. У вас будут проблемы с синхронизацией, если вы фактически используете несколько потоков. Предоставьте некоторый код, тогда, может быть, я смогу что-то понять. – iOSAaronDavid

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