Почему мой UIWebView отображает только первые 512 пикселей контента? - PullRequest
1 голос
/ 25 февраля 2010

У меня действительно запутанная проблема. У меня есть UIWebView, который содержится в UIScrollView (я использую UIWebView, потому что есть некоторые жесткие возвраты, которые необходимо отобразить), и чтобы убедиться, что приложение выглядит «чистым», я использую [UIWebView sizeToFit] после содержимого WebView загружен.

Проблема в том, что контент довольно большой (это обзоры фильмов с ранее существующего веб-сайта), и после определенного количества пикселей (около 512) WebView просто перестает рисовать. Тем не менее, он корректно регулирует высоту вида.

Некоторая дополнительная информация:

WebView должен иметь переменный размер

Даже если я установил размер вручную таким большим, проблема все равно возникает (не только при использовании SizeToFit)

Я не могу просто использовать возможность прокрутки WebView, потому что есть содержимое выше и ниже его, что означает, что оно должно содержаться в ScrollView (я бы использовал метку, но в моем тексте есть жесткие результаты)

Я не думаю, что с моим HTML что-то не так, я опубликую то, что имею, ниже:

тело { цвет фона: прозрачный; поле слева: 5 пикселей; поле справа: 5 пикселей; семья шрифтов: Грузия, без засечек; размер шрифта: маленький; } СОДЕРЖАНИЕ ЗДЕСЬ СОБИРАЕТСЯ ОТ ЯЗЫКА В ОБЪЕКТЕ, который Я СОЗДАЛ

Я тестировал с использованием стандартного представления (вместо ScrollView), и это только происходит, когда высота WebView превышает 512 пикселей. Что-нибудь меньшее, чем это, и это прекрасно отображает весь контент

Есть идеи? Спасибо за вашу помощь!

Ответы [ 3 ]

0 голосов
/ 25 февраля 2010

Я исправил свой вопрос! Проблема заключалась в том, что я не изменял размер UIView, дочерним элементом которого является WebView, а вместо этого я просто устанавливал contentSize ScrollView, дочерним элементом которого является View (если это имеет смысл ...)

Так что, если у кого-нибудь когда-нибудь возникнет эта проблема - убедитесь, что вы корректно изменяете размер вашего UIView!

0 голосов
/ 11 мая 2010

Эй, у вас была похожая проблема с UITextView в UITableView: если UITextView больше 512 пикселей, текст в представлении не отображается должным образом, пока вы не прокрутите страницу вручную (она фактически отображается, но того же цвета вид, делающий его невидимым). Setneedsdisplay, reloaddata, scrollto ... ничего не работает.

Единственным обходным решением было на самом деле установить больший кадр для ячейки, включающей UITextView, например:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
{
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];


        CGRect rec = CGRectMake(0, 0, 768, 1024);
        cell.frame = rec;

        txt = [[UITextView alloc] initWithFrame:CGRectMake(15, 85, 615, 200)];
}

Другие решения приветствуются ...

0 голосов
/ 25 февраля 2010

Вы пытались реализовать то же самое в Interface Builder?

Из моего опыта видно, что вы добавляете некоторый UIView (UIImageView и т. Д.) В UIWebView. UIWebView не требует слишком много настроек.

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