2010-06-04 2 views
1

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

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

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

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

ответ

0

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

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

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

Есть два подхода, которые Вы можете взять с собой:

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

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

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