我正在制作一个epub阅读器,我在webview
中加载HTML页面:
[_webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:_pagesPath]]];
现在我想更改HTML页面的背景颜色和文本颜色。我使用
更改了我的webview的背景颜色self._webview.backgroundColor = [UIColor blackColor];
self._webview.opaque = NO;
这是有效的,但我也想改变我的webview的文字颜色。我该怎么做?
答案 0 :(得分:12)
在此代码color:#fff
标签用于文本颜色#fff使用黑色
NSString *webStr =@"Your text use";
[self._webview loadHTMLString:[NSString stringWithFormat:@"<div id ='foo' align='left' style='line-height:18px; float:left;width:300px; font-size:13px;font-family:helvetica;background-color:transparent; color:#fff;>%@<div>",webStr] baseURL:nil];
如果您使用本地HTML ,请使用
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"html"];
NSString* text = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",htmlFile);
NSLog(@"Hello");
[self._webview loadHTMLString:[NSString stringWithFormat:@"<html><body bgcolor=\"#000000\" text=\"#FFFFFF\" face=\"Bookman Old Style, Book Antiqua, Garamond\" size=\"5\">%@</body></html>", text] baseURL: nil];
答案 1 :(得分:5)
[_webview loadHTMLString:[NSString stringWithFormat:@"<html><body style=\"background-color: white; font-size: 17; font-family: HelveticaNeue; color: #ffffff\">%@</body></html>", strDataFromHTML] baseURL: nil];
答案 2 :(得分:1)
I made a method在HTML正文中包含一些文字,其中包含给定UIColor
和UIFont
的正确样式。
只需将生成的HTML弹出到webview中:
NSString * htmlString = [MyClass htmlFromBodyString:@"an <b>example</b>"
textFont:[UIFont systemFontOfSize:10]
textColor:[UIColor grayColor]];
[webView loadHTMLString:htmlString baseURL:nil];
答案 3 :(得分:1)
这是一个小的Swift扩展来处理这个:
import UIKit
extension String
{
func htmlFormattedString(font:UIFont, color: UIColor) -> String
{
var numberOfColorComponents:Int = CGColorGetNumberOfComponents(color.CGColor)
var colorComponents = CGColorGetComponents(color.CGColor)
var colorHexString = ""
if numberOfColorComponents == 4 {
var red = colorComponents[0] * 255
var green = colorComponents[1] * 255
var blue = colorComponents[2] * 255
colorHexString = NSString(format:"%02X%02X%02X", Int(red), Int(green), Int(blue)) as String
} else if numberOfColorComponents == 2 {
var white = colorComponents[0] * 255
colorHexString = NSString(format:"%02X%02X%02X", Int(white), Int(white), Int(white)) as String
} else {
return "Color format noch supported"
}
return NSString(format: "<html>\n <head>\n <style type=\"text/css\">\n body {font-family: \"%@\"; font-size: %@; color:#%@;}\n </style>\n </head>\n <body>%@</body>\n </html>", font.familyName, String(stringInterpolationSegment: font.pointSize), colorHexString, self) as String
}
}
答案 4 :(得分:0)
尝试在HTML文件中添加您从服务器获取的代码...然后只有您可以更改文本颜色....或者在HTML文件之前添加一些HTML代码以更改文本颜色< / p>
答案 5 :(得分:0)
试试这个......
希望这有帮助。