Ни одно из предложений здесь не помогло мне в моей ситуации, но я прочитал что-то, что дало мне ответ. У меня есть ViewController с фиксированным набором элементов управления пользовательского интерфейса, а затем UIWebView. Я хотел, чтобы прокручивалась вся страница, как если бы элементы управления пользовательского интерфейса были связаны с содержимым HTML, поэтому я отключаю прокрутку в UIWebView и затем должен правильно установить размер содержимого родительского представления прокрутки.
Важным советом оказалось то, что UIWebView не сообщает свой размер правильно, пока не отобразится на экране. Поэтому, когда я загружаю контент, я устанавливаю размер контента на доступную высоту экрана. Затем в viewDidAppear я обновляю размер содержимого scrollview до правильного значения. Это сработало для меня, потому что я вызываю loadHTMLString для локального контента. Если вы используете loadRequest, вам также может понадобиться обновить contentSize в webViewDidFinishLoad, в зависимости от того, насколько быстро извлекается html.
Мерцания нет, потому что изменяется только невидимая часть вида прокрутки.