Это кажется распространенной проблемой, но я не могу найти адекватного решения. Я пытаюсь изменить -размер группы UIWebView, чтобы они соответствовали их содержимому, но, похоже, это не работает должным образом. Лучшее решение, которое я нашел до сих пор, — это этот ответ , но в моем решении он работает лишь изредка. Идея состоит в том, чтобы изменить -размер UIWebView в методе делегата webViewDidFinishLoad:
. Тем не менее, это все еще не имеет нужного размера. Если я запускаю обновление в неопределенное время послеwebViewDidFinishLoad:
, содержимое получает правильный размер.
Ниже я опишу свою ситуацию и вставлю соответствующий источник на Gist .
Описание проблемы
У меня есть ситуация, когда я получаю данные из JSON API и отображаю данные в веб-просмотрах. API возвращает массив объектов, и каждый объект имеет поле «контент» с текстом в формате HTML -. Дизайнеры разработали структуру, которая включала в себя (в основном )скрытое представление, которое вы открываете, проводя пальцем вверх, которое содержит представление прокрутки всего контента, отформатированного особым образом.
Чтобы реализовать это, у меня есть три контроллера представления :: контроллер основного представления, контроллер вторичного представления, который вы открываете, проводя пальцем вверх по контроллеру основного представления, и контроллер третичного представления, который отображает один элемент содержимого в формате html -из результаты JSON API.
Контроллер вторичного представления содержит UIScrollView и массив контроллеров третичного представления. Каждый контроллер третичного представления содержит UIWebView для отображения содержимого в формате HTML -и метки для отображения других атрибутов объекта JSON.Поскольку третичные представления будут отображаться внутри UIScrollView во вторичном представлении, необходимо -изменить размер UIWebView третичных представлений, чтобы он соответствовал его содержимому, и отключить взаимодействие с пользователем, чтобы предотвратить сбивающую с толку прокрутку -представления -. ] в -прокрутите -просмотр сценария.
Процесс, чтобы все это заработало, выглядит следующим образом:
loadHTMLString:
с предварительно определенным содержимым файла html -, с заменой содержимого объекта JSON.webViewDidFinishLoad:
третичного контроллера, используя метод в этот ответ , re -размер веб-представления на основе размера содержимого.