ios开发之改变UIWebView文本字体的样式和大小
2013-03-19 15:53
495 查看
1、UIWebView设置字体大小,颜色,字体:1、UIWebView设置字体大小,颜色,字体:
UIWebView无法通过自身的属性设置字体的一些属性,只能通过html代码进行设置,代码如下:UIWebView无法通过自身的属性设置字体的一些属性,只能通过html代码进行设置,代码如下:
[html] view plaincopyprint?
NSString *jsString = [NSString stringWithFormat:@"<html> \n" "<head> \n" "<style type=\"text/css\"> \n" "body {font-size: %f; font-family: \"%@\"; color: %@;}\n" "</style> \n" "</head> \n" "<body>%@</body> \n" "</html>", fontSize, fontFamily, fontColor, htmlText]; [_infoTextView loadHTMLString:jsString baseURL:nil];
另外也可以通过加载本地的css文件,将格式在css文件中定义,代码如下:
[cpp] view plaincopyprint?
NSString *jsString = [NSString stringWithFormat:@"<html> \n" "<head> \n" "<link href=\"text.css\" rel=\"stylesheet\" type=\"text/css\"> \n" "</style> \n" "</head> \n" "<body>%@</body> \n" "</html>", tempText]; NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *baseURL = [NSURL fileURLWithPath:path]; [infoWebView loadHTMLString:jsString baseURL:baseURL];
2、计算UIWebView的高度
网上有文章介绍使用如下代码计算高度,但用过后感觉不准确,主要是因为有时候html还没加载完计算就不准确了。
[cpp] view plaincopyprint?
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];
后来使用如下方法比较准确,就是加载完成后再去计算,不过有个问题是,第一次计算出来高度同时设置了对应高度后,后面计算的结果会受第一次的结果影响,也就是说高度保持第一次计算的结果。我测试的是第一次是内容较多,后面几次是内容较少,但是高度始终保持第一次的高度,不知如果后面的内容比第一次的多,会不会重新计算还是保持第一次的计算结果。所以保险一点,在每次计算之前,先重设一下高度。
[cpp] view plaincopyprint?
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
const CGFloat defaultWebViewHeight = 22.0;
//reset webview size
CGRect originalFrame = webView.frame;
webView.frame = CGRectMake(originalFrame.origin.x, originalFrame.origin.y, 320, defaultWebViewHeight);
CGSize actualSize = [webView sizeThatFits:CGSizeZero];
if (actualSize.height <= defaultWebViewHeight) {
actualSize.height = defaultWebViewHeight;
}
CGRect webViewFrame = webView.frame;
webViewFrame.size.height = actualSize.height;
webView.frame = webViewFrame;
}
UIWebView无法通过自身的属性设置字体的一些属性,只能通过html代码进行设置,代码如下:UIWebView无法通过自身的属性设置字体的一些属性,只能通过html代码进行设置,代码如下:
[html] view plaincopyprint?
NSString *jsString = [NSString stringWithFormat:@"<html> \n" "<head> \n" "<style type=\"text/css\"> \n" "body {font-size: %f; font-family: \"%@\"; color: %@;}\n" "</style> \n" "</head> \n" "<body>%@</body> \n" "</html>", fontSize, fontFamily, fontColor, htmlText]; [_infoTextView loadHTMLString:jsString baseURL:nil];
NSString *jsString = [NSString stringWithFormat:@"<html> \n" "<head> \n" "<style type=\"text/css\"> \n" "body {font-size: %f; font-family: \"%@\"; color: %@;}\n" "</style> \n" "</head> \n" "<body>%@</body> \n" "</html>", fontSize, fontFamily, fontColor, htmlText]; [_infoTextView loadHTMLString:jsString baseURL:nil];
另外也可以通过加载本地的css文件,将格式在css文件中定义,代码如下:
[cpp] view plaincopyprint?
NSString *jsString = [NSString stringWithFormat:@"<html> \n" "<head> \n" "<link href=\"text.css\" rel=\"stylesheet\" type=\"text/css\"> \n" "</style> \n" "</head> \n" "<body>%@</body> \n" "</html>", tempText]; NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *baseURL = [NSURL fileURLWithPath:path]; [infoWebView loadHTMLString:jsString baseURL:baseURL];
NSString *jsString = [NSString stringWithFormat:@"<html> \n" "<head> \n" "<link href=\"text.css\" rel=\"stylesheet\" type=\"text/css\"> \n" "</style> \n" "</head> \n" "<body>%@</body> \n" "</html>", tempText]; NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *baseURL = [NSURL fileURLWithPath:path]; [infoWebView loadHTMLString:jsString baseURL:baseURL];
2、计算UIWebView的高度
网上有文章介绍使用如下代码计算高度,但用过后感觉不准确,主要是因为有时候html还没加载完计算就不准确了。
[cpp] view plaincopyprint?
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];
后来使用如下方法比较准确,就是加载完成后再去计算,不过有个问题是,第一次计算出来高度同时设置了对应高度后,后面计算的结果会受第一次的结果影响,也就是说高度保持第一次计算的结果。我测试的是第一次是内容较多,后面几次是内容较少,但是高度始终保持第一次的高度,不知如果后面的内容比第一次的多,会不会重新计算还是保持第一次的计算结果。所以保险一点,在每次计算之前,先重设一下高度。
[cpp] view plaincopyprint?
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
const CGFloat defaultWebViewHeight = 22.0;
//reset webview size
CGRect originalFrame = webView.frame;
webView.frame = CGRectMake(originalFrame.origin.x, originalFrame.origin.y, 320, defaultWebViewHeight);
CGSize actualSize = [webView sizeThatFits:CGSizeZero];
if (actualSize.height <= defaultWebViewHeight) {
actualSize.height = defaultWebViewHeight;
}
CGRect webViewFrame = webView.frame;
webViewFrame.size.height = actualSize.height;
webView.frame = webViewFrame;
}
相关文章推荐
- ios开发之改变UIWebView文本字体的样式和大小
- IOS开发之改变UIWebView文本字体的样式和大小
- IOS开发之改变UIWebView文本字体的样式和大小
- iOS开发—使用TYAttributedLabel实现字体大小颜色各异并且带链接的文本
- html的样式例子,改变文本字体,大小
- iOS UILabel根据文本宽度改变字体大小
- iOS开发之----根据文本内容和字体大小计算UILabel的size
- iOS开发之--改变系统导航的颜色,字体,还有返回样式的自定义
- ios 如何改变UISegmentedControl文本的字体大小?
- IOS开发的字体样式的设置
- js改变文本字体大小及颜色,先放大后缩小,10次循环
- iOS开发 - 新特性的坑之应用字体根据系统字体大小而变化
- (0059)iOS开发之添加自定义字体库并设置文本字体
- iOS开发-- 设置UIButton的文字显示位置、字体的大小、字体的颜色
- UIWebView控件中字体大小和字体样式的修改
- 改变UIWebView的字体大小
- [iOS开发]TextKit之动态改变样式
- iOS开发绘制三角形和添加文字改变文字大小颜色
- javaScript小练习:实现文本字体大小的改变
- 一个按钮改变字体的大小,一个按钮改变字体的样式