¿Por qué no se ajusta el text de reflujo UIWebView después del ancho de columna y la brecha a través de javascript?

Estoy cargando un file html en un UIWebView y configurando la propiedad de estilo "-webkit-column-width" y "-webkit-column-gap" a través de javascript en webViewDidFinishLoad, pero el text no se refleja en columnas.

- (void)viewDidLoad { [super viewDidLoad]; NSURL *urlForView = [self.book.chapterURLs objectAtIndex:0]; self.webView.delegate = self; self.webView.scrollView.bounces = NO; self.webView.scrollView.pagingEnabled = YES; [self.webView loadRequest:[NSURLRequest requestWithURL:urlForView]]; } - (void) webViewDidFinishLoad:(UIWebView *)webView { NSString *jsString = @"document.getElementsByTagName('body')[0]. setAttribute('style','-webkit-column-width: 733px; -webkit-column-gap: 20px;');)"; [self.webView stringByEvaluatingJavaScriptFromString:jsString]; 

}

He confirmado mediante alertas que los attributes de estilo se configuran correctamente, por lo que no entiendo por qué no tienen ningún efecto. Ejecutar esa misma cadena de javascript a través de la console en Safari tiene el efecto deseado. ¿Alguna idea de por qué esto no funciona en UIWebView?

Todavía no entiendo por qué el código anterior no funciona, pero pude encontrar una solución al tomar la hoja de estilo externa para el file a través de javascript, luego editar ese file CSS a través de javascript.

 NSString *varMySheet = @"var mySheet = document.styleSheets[0];"; NSString *addCSSRule = @"function addCSSRule(selector, newRule) {" "ruleIndex = mySheet.cssRules.length;" "mySheet.insertRule(selector + '{' + newRule + ';}', ruleIndex);" // For Firefox, Chrome, etc. "}"; NSString *insertRule1 = [NSString stringWithFormat:@"addCSSRule('html', 'padding: 0px; height: %fpx; -webkit-column-gap: 0px; -webkit-column-width: %fpx;')", webView.frame.size.height, webView.frame.size.width]; NSString *insertRule2 = [NSString stringWithFormat:@"addCSSRule('p', 'text-align: justify;')"]; //NSString *setTextSizeRule = [NSString stringWithFormat:@"addCSSRule('body', '-webkit-text-size-adjust: %d%%;')", currentTextSize]; [webView stringByEvaluatingJavaScriptFromString:varMySheet]; [webView stringByEvaluatingJavaScriptFromString:addCSSRule]; [webView stringByEvaluatingJavaScriptFromString:insertRule1]; [webView stringByEvaluatingJavaScriptFromString:insertRule2]; 

Punta de sombrero para el proyecto AePubReader donde encontré este código.