您的位置:首页 > 移动开发

iOS UIWebView

2015-12-31 12:22 337 查看
关于UIWebView的一些事: http://www.cocoachina.com/applenews/devnews/2012/1123/5167.html

1:禁止UIWebView有拖动惯性

[csharp] view
plaincopy

[(UIScrollView *)[[self.webView subviews] objectAtIndex:0] setBounces:NO];

以下适用于iOS5.0以上

[csharp] view
plaincopy

[detailPaperWebView.scrollView setBounces:NO];

2:设置UIWebView是按 WebView自适应大小显示,还是按正文内容的大小来显示

[csharp] view
plaincopy

[webView setScalesPageToFit:YES];

YES:表示WebView自适应大小

NO:表示按正文内容的大小来显示

3:UIWebView加载HTML字符串

[csharp] view
plaincopy

[webView loadHTMLString: strHTMLContent baseURL:[NSURL URLWithString:strServerUrl]];

baseURL:桥接HTML字符串里面的图片路径.以保证图标等能够正常显示 例如:http://221.4.222.110:8078

使用此访问时需要注意:是否有访问不到的图片链接.如果有的话,UIWebView 会等请求超时时才执行委托 webViewDidFinishLoad

4:UIWebView 根据内容自动适应内容高度

在委托(webViewDidFinishLoad)中 植入以下代码:

[csharp] view
plaincopy

CGSize actualSize = [webView sizeThatFits:CGSizeZero];

CGRect newFrame = webView.frame;

newFrame.size.height = actualSize.height;

webView.frame = newFrame;

5:UIWebView加载网页时

[csharp] view
plaincopy

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:1];

NSURLRequestReloadIgnoringCacheData 忽略缓存直接从原始地址下载

NSURLRequestReturnCacheDataElseLoad 只有在cache中不存在data时才从原始地址下载

6:UIWebView 背景透明 3步曲

[csharp] view
plaincopy

[self.webViewHTMLEditor setBackgroundColor:[UIColor clearColor]];

[self.webViewHTMLEditor setOpaque:NO];

HTML页面 body : <body style="background-color: transparent">

7:控制UIWebView的请求委托,返回YES, WebView 会顺利去执行Url,返回NO 将可以阻止

[csharp] view
plaincopy

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

{

// NSURL *requestURL =[ [ request URL ] retain ];

// if ( ( [ [ requestURL scheme ] isEqualToString: @"http" ] || [ [ requestURL scheme ] isEqualToString: @"https" ] || [ [ requestURL scheme ] isEqualToString: @"mailto" ])

// && ( navigationType == UIWebViewNavigationTypeLinkClicked ) ) {

// return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ];

// }

// [ requestURL release ];

if (isFirstWebViewRequest) {

isFirstWebViewRequest = NO;

return YES;

}else

return NO;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: