2015-04-15 4 views
1

Я реализую пользовательское меню, когда вы долго нажимаете на ссылку в UIWebView.UIWebView пользовательское меню UIActionSheet при длительном нажатии на ссылку

Чтобы предотвратить меню IOS по умолчанию, я использую:

-webkit-touch-callout:'none' 

Все отлично работает в IOS 6, 7: мое заказное меню отображается вместо UIWebView по умолчанию. Но в iOS 8 происходит странное поведение.

В iOS 8, после отображения моего собственного меню, я отпускаю сенсорный экран, а ссылка загружается в UIWebView.

I подкласс UIWindow, переопределить SendEvent: и увидеть разные:

  • В IOS 6, 7: после того, как показано мое собственное меню, touchcancel было отправлено.

  • В iOS 8: ничего не происходит. Но когда я выпускаю touch, коснулся отправленный и триггерный клик.

Я пробовал триггер touchcancel с javascript, когда отображается мое меню, но не повезло.

Есть ли обходной путь для этой ситуации?

+0

попробовать это: https://github.com/theniceboy/HoldToSaveImage – David

+0

Дэвид, я попробовал ваш проект и долгое нажатие на желтый рюкзак, как указано в readme, но мне не повезло увидеть настроенное сообщение оповещения. –

ответ

1

Для тех, кто может быть обеспокоен в будущем, мне удалось преодолеть эту ситуацию хитрый хак:

CGPoint currentOffset = webview.scrollView.contentOffset; 
[webview.scrollView setContentOffset:CGPointMake(currentOffset.x, currentOffset.y +1) animated:NO]; 
[webview.scrollView setContentOffset:currentOffset animated:NO]; 
+0

Из-за многих подходов, чтобы избежать появления крана при замене длинного жестжания, это единственный, который работает. – jasonjwwilliams

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