iOS UIWebView

来源:互联网 发布:seo是什么意思 编辑:程序博客网 时间:2024/05/24 07:04

关于UIWebView的一些事: http://www.cocoachina.com/applenews/devnews/2012/1123/5167.html

1:禁止UIWebView有拖动惯性

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

以下适用于iOS5.0以上

[csharp] view plaincopy
  1. [detailPaperWebView.scrollView setBounces:NO];  




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

[csharp] view plaincopy
  1. [webView setScalesPageToFit:YES];  

YES:表示WebView自适应大小

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

3:UIWebView加载HTML字符串

[csharp] view plaincopy
  1. [webView loadHTMLString: strHTMLContent baseURL:[NSURL URLWithString:strServerUrl]];  
baseURL:桥接HTML字符串里面的图片路径.以保证图标等能够正常显示 例如:http://221.4.222.110:8078

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

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

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

[csharp] view plaincopy
  1. CGSize actualSize = [webView sizeThatFits:CGSizeZero];  
  2. CGRect newFrame = webView.frame;  
  3. newFrame.size.height = actualSize.height;  
  4. webView.frame = newFrame;  

5:UIWebView加载网页时 

[csharp] view plaincopy
  1. NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData  timeoutInterval:1];  

NSURLRequestReloadIgnoringCacheData 忽略缓存直接从原始地址下载
NSURLRequestReturnCacheDataElseLoad 只有在cache中不存在data时才从原始地址下载

6:UIWebView 背景透明 3步曲

[csharp] view plaincopy
  1. [self.webViewHTMLEditor setBackgroundColor:[UIColor clearColor]];  
  2. [self.webViewHTMLEditor setOpaque:NO];  

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

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

[csharp] view plaincopy
  1. -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;   
  2. {   
  3. //    NSURL *requestURL =[ [ request URL ] retain ];   
  4. //    if ( ( [ [ requestURL scheme ] isEqualToString: @"http" ] || [ [ requestURL scheme ] isEqualToString: @"https" ] || [ [ requestURL scheme ] isEqualToString: @"mailto" ])   
  5. //        && ( navigationType == UIWebViewNavigationTypeLinkClicked ) ) {   
  6. //        return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ];   
  7. //    }   
  8. //    [ requestURL release ];   
  9.     if (isFirstWebViewRequest) {  
  10.         isFirstWebViewRequest = NO;  
  11.         return YES;  
  12.     }else  
  13.         return NO;   
  14. }  
0 0
原创粉丝点击