как увеличить или уменьшить размер шрифта UIWebview, не используя scalePageToFit: NO;
Как увеличить размер шрифта в UIWebView
Ответ 1
У меня есть 2 кнопки - A- и A +
@interface
NSUInteger textFontSize;
- (IBAction)changeTextFontSize:(id)sender
{
switch ([sender tag]) {
case 1: // A-
textFontSize = (textFontSize > 50) ? textFontSize -5 : textFontSize;
break;
case 2: // A+
textFontSize = (textFontSize < 160) ? textFontSize +5 : textFontSize;
break;
}
NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%d%%'",
textFontSize];
[web stringByEvaluatingJavaScriptFromString:jsString];
[jsString release];
}
Ответ 2
В настоящее время нет открытого способа прямого манипулирования DOM в UIWebView и каких-либо удобных методов для обработки таких вещей, как размер шрифта. Я предлагаю подать радары.
Сказав это. вы можете изменить размер шрифта, изменив CSS, как и любую другую веб-страницу. Если это невозможно (вы не контролируете контент), вы можете написать небольшую функцию javascript для изменения свойств CSS на страницах DOM и выполнить ее, вызвав:
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
Ответ 3
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *[email protected]"143";
NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%d%%'",[fontSize intValue]];
[myWebview stringByEvaluatingJavaScriptFromString:jsString];
}
Ответ 4
Swift 3
public func webViewDidFinishLoad(_ webView: UIWebView) {
let textSize: Int = 300
webView.stringByEvaluatingJavaScript(from: "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '\(textSize)%%'")
}
Старая скорость:
func webViewDidFinishLoad(webView: UIWebView) {
let textSize: Int = 300
webView.stringByEvaluatingJavaScriptFromString("document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '\(textSize)%%'")
}
Ответ 5
Попробуйте приведенный ниже код:
NSString *setTextSizeRule = [NSString stringWithFormat:@"addCSSRule('body', '-webkit-text-size-adjust: %d%%;')",currentTextSize];
[_webview stringByEvaluatingJavaScriptFromString:setTextSizeRule];
Ответ 6
Вот мой способ изменить размер и цвет шрифта в UIWebView:
NSString *[email protected]"Hello World!";
int textFontSize=2;
NSString *myHTML=[NSString stringWithFormat: @"<html><body><script>var str = '%@'; document.write(str.fontsize(%d).fontcolor('green'));</script></body></html>",myString,textFontSize];
[myWebView loadHTMLString:myHTML baseURL:nil];
Ответ 7
Попробуйте этот простой метод
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
int fontValue = 150;
NSString *webviewFontSize = [NSString stringWithFormat:@"addCSSRule('body', '-webkit-text-size-adjust: %d%%;')",fontValue];
[your_webview stringByEvaluatingJavaScriptFromString:webviewFontSize];
}
Ответ 8
Измените размер шрифта выбранных данных HTML, изменив размер шрифта в выбранной строке html на необходимый размер шрифта (40 в этом примере) в методе.
strHtml = [self htmlEntityDecode:strHtml];//parsing the html string
-(NSString *)htmlEntityDecode:(NSString *)string
{
string = [string stringByReplacingOccurrencesOfString:@"14px;" withString:@"40"];
string = [string stringByReplacingOccurrencesOfString:@"15px;" withString:@"40"];
string = [string stringByReplacingOccurrencesOfString:@"16px;" withString:@"40"];
string = [string stringByReplacingOccurrencesOfString:@"17px;" withString:@"40"];
string = [string stringByReplacingOccurrencesOfString:@"18px;" withString:@"40"];
string = [string stringByReplacingOccurrencesOfString:@"19px;" withString:@"40"];
string = [string stringByReplacingOccurrencesOfString:@"20px;" withString:@"40"];
return string;
}
Итак, строка html: span style = 'font-size: 20px; становится: span style = 'font-size: 40
Примечание: измените другие вхождения, такие как gt;, apos; чтобы получить нужную строку для загрузки в вашем веб-просмотре.
Ответ 9
в моем случае im, используя UISlider для fontSize, может быть любое значение float
func webViewDidFinishLoad(_ webView: UIWebView) {
if let fontSize: Float = (self.fontSizeSlider?.value) {
webView.stringByEvaluatingJavaScript(from: "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '\(fontSize)%%'")
print(fontSize)
}
}