UI之UIWebview

来源:互联网 发布:中俄翻译软件在线 编辑:程序博客网 时间:2024/06/06 06:49

  • 前奏

UIWebView 是用来加载加载网页数据的一个框。UIWebView可以用来加载pdf、 word、 doc 等文件。

生成webview 有两种方法:
1、通过storyboard 拖拽
2、通过alloc init 来初始化

创建webview,下列文本中 _webView.dataDetectorTypes = UIDataDetectorTypeAll; 是识别webview中的类型,例如 当webview中有电话号码,点击号码就能直接打电话


  • 创建
 - (UIWebView *)webView{    if (!_webView) {        _webView = [[UIWebView alloc] initWithFrame:self.view.bounds];        _webView.dataDetectorTypes = UIDataDetectorTypeAll;//属性检测          [_webView setUserInteractionEnabled:YES]; //是否与用户交互(即用户能不能控制webview)        // _webView.deleate           = self;       // UIScrollView *scollview=(UIScrollView *)[[webview subviews]objectAtIndex:0];       //scollview.bounces=NO;    }    return _webView;}
  • 加载网页
// 让浏览器加载指定的字符串,使用m.baidu.com进行搜索- (void)loadString:(NSString *)str{    // 1. URL 定位资源,需要资源的地址    NSString *urlStr = str;    if (![str hasPrefix:@"http://"]) {        urlStr = [NSString stringWithFormat:@"http://m.baidu.com/s?word=%@", str];    }    NSURL *url = [NSURL URLWithString:urlStr];    // 2. 把URL告诉给服务器,请求,从m.baidu.com请求数据    NSURLRequest *request = [NSURLRequest requestWithURL:url];    // 3. 发送请求给服务器    [self.webView loadRequest:request];}
  • 导航
#pragma mark - 按钮方法#pragma mark 前进- (void)forawrd {    [self.webView goForward];}#pragma mark 后退- (void)back {    [self.webView goBack];}#pragma mark - 按钮方法#pragma mark 重新加载数据- (void)reload {    [webView reload];//重新加载数据}#pragma mark 停止加载数据- (void)stopLoading {     [webView stopLoading];//停止加载数据}
  • 设置代理和代理方法

    UIWebView有五个代理方法,我们可以在不同的代理方法中,完成不同的需求。

//设置代理webView.delegate=self;//代理方法-(BOOL)webView:(UIWebView*)webViewshouldStartLoadWithRequest:(NSURLRequest*)requestnavigationType:(UIWebViewNavigationType)navigationType{//返回YES,进行加载。通过UIWebViewNavigationType可以得到请求发起的原因returnYES;}-(void)webViewDidStartLoad:(UIWebView*)webView{//开始加载,可以加上风火轮(也叫菊花)}-(void)webViewDidFinishLoad:(UIWebView*)webView{//完成加载}-(void)webView:(UIWebView*)webViewdidFailLoadWithError:(NSError*)error{//加载出错}
  • webview的高级用法
1.隐藏上下滚动时出边界的后面的黑色的阴影- (void) hideGradientBackground:(UIView*)theView{  for (UIView * subview in theView.subviews)  {    if ([subview isKindOfClass:[UIImageView class]])      subview.hidden = YES;    [self hideGradientBackground:subview];  }}2. 禁用拖拽时的反弹效果[(UIScrollView *)[[webView subviews] objectAtIndex:0] setBounces:NO];  3. 判断用户点击类型- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{//根据创建时设置的属性检测类型,执行相应的操作    switch (navigationType)     {        //点击连接        case UIWebViewNavigationTypeLinkClicked:        {            NSLog(@"clicked");        }            break;        //提交表单        case UIWebViewNavigationTypeFormSubmitted:        {            NSLog(@"submitted");        }        default:            break;    }    return YES;}

写的匆忙,待回头整理…..
参考链接:

http://163liufuliang.blog.163.com/blog/static/3316518620132515136177/
http://my.oschina.net/hmj/blog/147507
http://www.cnblogs.com/gcb999/p/3178728.html
http://blog.csdn.net/codywangziham01/article/details/37658399

0 0
原创粉丝点击