Я использую UIWebView для отображения статьи, и одним из требований к функциональности является изменение размера текста. Поскольку установка увеличенного размера и перезагрузка UIWebView теряют смещение прокрутки, я решил использовать решение Javascript.
Тег HTML-кода статьи выглядит следующим образом: <body style='font-size:12px;'>
И функция изменения размера в основном выглядит так:
NSString * str;
str = [NSString stringWithFormat:@"document.getElementsByTagName('body')[0].style.fontSize=%d;", app.storyTextSize];
[textView stringByEvaluatingJavaScriptFromString:str];
[textView stringByEvaluatingJavaScriptFromString:str];
И на самом деле это работает. В моем iPod это прекрасно работает (двойная строкаByEvaluatingJavascript делает свое дело), но у меня есть отчеты от другого тестера, что в его iPhone иногда это работает, а иногда нет (я думаю, что он имел в виду, что не каждый щелчок кнопки выполняет Javascript правильно, даже если это должно быть выполнено дважды для подтверждения).
Можно ли как-нибудь оптимизировать свое решение и сделать его более пуленепробиваемым? Или, может быть, есть способ прокрутить назад к предыдущей позиции после перезагрузки UIWebView, но, опять же, установка смещения в UIWebView будет бизнес Javascript ..