Встраивание длинного UIWebView в ячейку табличного представления различной высоты - PullRequest
1 голос
/ 04 июня 2010

Я хочу иметь возможность встроить UIWebView в ячейку табличного представления (сгруппированный стиль).

Веб-представление длинное (длиннее экрана), и я хочу, чтобы оно отображало полную длину. Таким образом, прокрутка в самом веб-представлении отсутствует, только на столе.

------------------------
| a normal table cell  |
------------------------
| a normal table cell 2|
------------------------
|   a long webview     |
|  which doesn't scroll|
|  within itself       |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
------------------------

Веб-представление будет иметь различную высоту, так как я могу узнать высоту веб-просмотра, чтобы отрегулировать высоту по высотеForRowAtIndexPath?

1 Ответ

0 голосов
/ 04 июня 2010

Вот как вы могли бы это сделать, но посмотрите мое предостережение ниже:

Вы можете загрузить веб-представление, а затем использовать функцию javascript для определения высоты содержимого. Затем вы можете использовать [myWebView stringByEvaluatingJavaScriptFromString: ..], чтобы получить высоту.

Вот проблема. UIWebViews довольно медленно. Таблица не может представить себя, пока не узнает высоту строк, потому что именно так она определяет, какие ячейки таблицы извлечь. Так что прокрутка вашего табличного представления будет прерывистой, потому что каждый раз, когда вы прокручиваете вниз до новой ячейки, высоту нужно будет вычислять.

Существует два подхода:

1) Не используйте UIWebView, встроенный в UITableCell. Вместо этого используйте UILabel и определите его высоту, используя для этого некоторые удобные методы NSString.

2) Используйте UIWebView для всей таблицы. Делая это, вы можете очень близко смоделировать просмотр таблицы, и вы получите нужный вам интерфейс. Для обработки таких вещей, как щелчки, используйте крюки загрузки URL-адресов, предоставляемые UIWebViewDelegate.

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