2010-08-09 5 views
2

У меня есть UIWebView, встроенный в UIScrollView. Веб-просмотр изменен таким образом, что в режиме просмотра прокрутки выполняется управление всей прокруткой (мне нужен контроль над прокруткой).UIScrollView со встроенным UIWebView не прокручивается после проведения

В webView я отключил userSelection через '-webkit-user-select: none;'

Все работает отлично, за исключением одной досадной детали. Когда я держу палец на контенте, прежде чем прокручивать примерно секунду, scrollView не будет прокручиваться. Мое лучшее предположение, что это имеет какое-то отношение к userSelection. Время примерно такое же, как обычно, для появления копии/вставки/увеличивающейся вещи, которая обычно отключает прокрутку.

У меня заканчиваются идеи о том, как это решить. Каждая помощь будет принята с благодарностью!

Спасибо!

EDIT: Еще один аспект проблемы заключается в том, что без прокрутки фактически запускается JS-Eventhandler (click, mousedown, mouseup) внутри моего webView, что приводит к удивительному поведению приложений. Пользователь кладет свой палец вниз, ждет, свитки, ничего не происходит, удаляет свой палец, и это воспринимается как щелчок, который кажется неправильным с точки зрения пользователей.

+1

Привет, Я пытаюсь добиться того же с UIWebView внутри UIScrollView. Можете ли вы опубликовать несколько примеров кода о том, как вы это достигли? Cheers, –

ответ

1

Этот вопрос больше не имеет отношения. Начиная с iOS 5.0 UIWebView основан на реальном UIScrollView, а также предоставляет UIScrollView через свойство. Используйте это вместо этого.

И не связывайтесь с UIWebViews, встроенными в UIScrollViews. Документация прямо предупреждает об этом.

Relevant Documentation

1

Я бы предположил, что происходит то, что после этой короткой продолжительности scrollview больше не интерпретирует прикосновение как находящееся на его представлении и вместо этого передает прикосновение к его представлениям контента.

Вы пробовали задерживать содержание для прокрутки? Это, по сути, скажет scrollview, чтобы задержать действие в событии касания и вместо этого следить за прикосновением, а при касании движется, то он распознает его как прокручивающий жест для прокрутки. Если он не движется, он, в конце концов, передаст прикосновение к его подзонам.

scrollView.delaysContentTouches = YES; 

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

+0

ЗамедленияСодержаниеТочки уже установлены на YES. Я переключил его без эффекта. –

+1

Если ваш комментарий выше о веб-просмотре, который фиксирует щелчок, это означает, что прокрутка просматривает событие касания, так как вы не перемещаете свой палец в пределах временной продолжительности. Это то, что он должен делать иначе, как он сможет обрабатывать фактические клики в веб-просмотре? Если стандартное время недостаточно для вас, вам придется самостоятельно обрабатывать события касания, что является большой возможностью червей. – iwasrobbed

+0

Если вы не хотите, чтобы веб-просмотр обрабатывал штрихи, вы должны установить его 'userInteractionEnabled' равным NO. – iwasrobbed

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