iOS-UIWebView加载html,文字大小颜色设置,图片自适应设置
2017-04-11 15:23
639 查看
UIWebView加载html,遇到了文字大小、颜色不符合要求的问题,而且图片也不能设置宽高。
经过多次尝试(UITextView代替尝试),终于有了解决方案:修改html源码,在其中加入font-size等的设置。
代码如下:代码思路是,把源代码中的所有font-size设置都删掉,然后把原html放在一个body里,再整体设置body的font-size等属性
//修改answer中的字号/边距/颜色,设置图片大小适应屏幕
NSString *answer = 你的html代码;
NSRange range = [answer rangeOfString:@"font-size:"];
if (range.location == NSNotFound) {
NSLog(@"can not change fontsize!");
} else {
NSArray*sourcearray = [answer componentsSeparatedByString:@"font-size:"];
NSMutableArray *bigArray = [NSMutableArray arrayWithArray:sourcearray];
for (int i=1; i<bigArray.count; i++) {
NSArray *minArray = [bigArray[i] componentsSeparatedByString:@"px"];
if (minArray.count < 2) {
minArray = [bigArray[i] componentsSeparatedByString:@"pt"];
}
if (minArray.count < 2) {
minArray = [bigArray[i] componentsSeparatedByString:@"em"];
}
bigArray[i] = minArray[1];
}
answer = @"";
for (NSString *subStr in bigArray) {
answer = [answer stringByAppendingString:subStr];
}
}
//设置字体大小为14,颜色为0x666666,边距为18,并且图片的宽度自动充满屏幕,高度自适应
NSString *htmls = [NSString stringWithFormat:@"<html> \n"
"<head> \n"
"<style type=\"text/css\"> \n"
"body {margin:18;font-size:14;color:0x666666}\n"
"</style> \n"
"</head> \n"
"<body>"
"<script type='text/javascript'>"
"window.onload = function(){\n"
"var $img = document.getElementsByTagName('img');\n"
"for(var p in $img){\n"
" $img[p].style.width = '100%%';\n"
"$img[p].style.height ='auto'\n"
"}\n"
"}"
"</script>%@"
"</body>"
"</html>",answer];
self.htmlWebView.scalesPageToFit=YES;
[self.htmlWebView loadHTMLString:htmls baseURL:nil];
这样之后,就需要动态计算出UIWebView的高度,在webView的delegate里,计算高度,代码如下:
- (void)webViewDidFinishLoad:(UIWebView *)theWebView
{
CGFloat scrollHeight = [[theWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
[self.htmlWebView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.equalTo(@(scrollHeight));
}];
}
即在加载完成之后,再计算真实高度。
经过多次尝试(UITextView代替尝试),终于有了解决方案:修改html源码,在其中加入font-size等的设置。
代码如下:代码思路是,把源代码中的所有font-size设置都删掉,然后把原html放在一个body里,再整体设置body的font-size等属性
//修改answer中的字号/边距/颜色,设置图片大小适应屏幕
NSString *answer = 你的html代码;
NSRange range = [answer rangeOfString:@"font-size:"];
if (range.location == NSNotFound) {
NSLog(@"can not change fontsize!");
} else {
NSArray*sourcearray = [answer componentsSeparatedByString:@"font-size:"];
NSMutableArray *bigArray = [NSMutableArray arrayWithArray:sourcearray];
for (int i=1; i<bigArray.count; i++) {
NSArray *minArray = [bigArray[i] componentsSeparatedByString:@"px"];
if (minArray.count < 2) {
minArray = [bigArray[i] componentsSeparatedByString:@"pt"];
}
if (minArray.count < 2) {
minArray = [bigArray[i] componentsSeparatedByString:@"em"];
}
bigArray[i] = minArray[1];
}
answer = @"";
for (NSString *subStr in bigArray) {
answer = [answer stringByAppendingString:subStr];
}
}
//设置字体大小为14,颜色为0x666666,边距为18,并且图片的宽度自动充满屏幕,高度自适应
NSString *htmls = [NSString stringWithFormat:@"<html> \n"
"<head> \n"
"<style type=\"text/css\"> \n"
"body {margin:18;font-size:14;color:0x666666}\n"
"</style> \n"
"</head> \n"
"<body>"
"<script type='text/javascript'>"
"window.onload = function(){\n"
"var $img = document.getElementsByTagName('img');\n"
"for(var p in $img){\n"
" $img[p].style.width = '100%%';\n"
"$img[p].style.height ='auto'\n"
"}\n"
"}"
"</script>%@"
"</body>"
"</html>",answer];
self.htmlWebView.scalesPageToFit=YES;
[self.htmlWebView loadHTMLString:htmls baseURL:nil];
这样之后,就需要动态计算出UIWebView的高度,在webView的delegate里,计算高度,代码如下:
- (void)webViewDidFinishLoad:(UIWebView *)theWebView
{
CGFloat scrollHeight = [[theWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
[self.htmlWebView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.equalTo(@(scrollHeight));
}];
}
即在加载完成之后,再计算真实高度。
相关文章推荐
- IOS设置导航栏全局的背景图片、导航栏title文字颜色大小、导航栏左右按钮的颜色。
- UIWebView加载html文本时候用来控制图片大小自适应 的2种方法
- iOS开发——WebView加载HTML图片大小自适应与文章自动换行
- iOS开发——WebView加载HTML图片大小自适应与文章自动换行
- 【iOS】WebView加载HTML图片大小自适应与文章自动换行
- ios学习笔记:设置UIButton的文字显示位置、字体的大小、字体的颜色
- iOS中用UIWebView的loadHTMLString后图片和文字失调解决方法
- WebView加载HTML图片大小自适应与文章自动换行
- iOSUIWebView 的图片,文字大小适应
- iOS小问题---设置TabBarItem的字体大小、颜色,各种状态下的图片
- 应用键横竖屏切换;label中显示图片;不同类型设备适配的代码;UIWebView字体大小、字体颜色、背景色的设置;
- WebView加载HTML图片大小自适应与文章自动换行
- IOS uiwebview中加载服务器上的html图片不显示
- UIWebView背景颜色的设置 webview加载html文本 禁用webview长按
- iOS_UIWebView背景颜色、文字颜色、文字大小的改变
- iOS 设置Label中特定的文字大小和颜色
- iOS UIImageView 网络加载图片自适应大小问题
- iOS中用UIWebView的loadHTMLString后图片和文字失调解决方法
- iOS开发-- 设置UIButton的文字显示位置、字体的大小、字体的颜色
- jquery中加载图片自适应大小设置问题