Как поместить UIWebView в ячейку табличного представления и поддерживать ее полосы прокрутки? - PullRequest
0 голосов
/ 14 января 2009

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

Текст отображается отлично, когда я использую UITextView, и он также показывает скроллеры, но проблема в том, что мой контент представляет собой форматированный текст, поэтому у меня нет другого выбора, кроме как показать контент в UIWebView. Есть идеи, хаки?

Ответы [ 7 ]

3 голосов
/ 19 января 2009

Если Apple что-то не сделает, это не сработает. И UITableView, и UIWebView поддерживают скроллеры, и они противоречат друг другу. Скроллеры UITableView имеют приоритет, поэтому всякий раз, когда выполняется операция прокрутки, действие отправляется в UITableView вместо UIWebView.

По какой-то причине при использовании UITextView с UITableView скроллеры работают для обоих.

2 голосов
/ 11 января 2011

Я только что нашел это в документации UIWebView:

"Важное замечание: Не следует встраивать объекты UIWebView или UITableView в объекты UIScrollView. В этом случае может возникнуть непредвиденное поведение, поскольку события касания для двух объектов могут быть смешаны и неправильно обработаны."

2 голосов
/ 16 января 2009

Проблема с добавлением UIWebView в ячейку таблицы состоит в том, что оба эти объекта можно прокручивать (просмотр таблицы и просмотр веб-страницы), что может создать сложности, если не будет использоваться надлежащим образом. У вас в tableview есть какие-либо клетки, кроме uiwebview? а вам нужно чтобы таблица была прокручиваемой? Если просмотр таблицы не нуждается в прокрутке, включите прокрутку в веб-просмотре и отключите для просмотра таблицы. Это должно работать.

Но если вы хотите просто отобразить текст, почему бы не использовать UITextView (хотя вы столкнетесь с той же проблемой и для UITextView)?

1 голос
/ 11 августа 2009

Вы можете поместить UIWebView в UIScrollView, и их можно прокручивать, установив для свойства canCancelTouchEvents UISCrollView значение NO. Если вы просто щелкнете, UIScrollView будет прокручиваться. Если вы удерживаете палец в течение короткого периода времени, а затем начинаете мигать, UIWebView будет прокручиваться.

1 голос
/ 14 января 2009

UIWebView будет автоматически отображать полосы прокрутки, когда его содержимое превышает высоту UIView.

1 голос
/ 14 января 2009

Полосы прокрутки добавляются автоматически, когда вы помещаете контент в UIWebView. Обязательно снимите флажок «Масштабировать страницу по размеру» в Интерфейсном конструкторе, чтобы страница не масштабировалась при отображении.

0 голосов
/ 07 января 2011

Попробуйте этот быстрый взлом, чтобы увидеть, можете ли вы заставить веб-представление отображать индикатор прокрутки: ((UIScrollView *) [webView.subViews objectAtIndex: 0]). ShowsVerticalScrollIndicator = YES;

Более тщательный подход состоит в том, чтобы разделить содержимое вашей ячейки на сводку и детализацию. Показать резюме в каждой ячейке, но без подробностей. После выбора ячейки используйте новый экран, чтобы отобразить все содержимое выбранной ячейки. Это полностью исключает проблему удобства использования прокручиваемого представления внутри прокручиваемого представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...