美文网首页IOSiOS DeveloperiOS开发
UIWebView添加头视图及遇到的一些小问题

UIWebView添加头视图及遇到的一些小问题

作者: SPIREJ | 来源:发表于2016-04-05 15:05 被阅读1394次
    • 当然,如题所言,这是一个简单的问题,但是我在做的时候不是一下子就做出来的,有可能LZ比较笨的类型吧。我觉得超过5分钟没解决的问题都应该记录一下。故本篇以问题的形式来做描述。
    • 1.直接加载到 UIWebView上会直接覆盖在上面而不是你想要的在顶部。像这样:


      直接加载会覆盖在上面

      解决办法:
      1.头视图的frame的y坐标做调整
      2.webView设置contentInset
      如我这样设置头视图的frame:
      self.frame = CGRectMake(0, -300, [UIScreen mainScreen].bounds.size.width, 300);
      这样设置webView的contentInset:
      _webView.scrollView.contentInset = UIEdgeInsetsMake(300, 0, 0, 0);
      这样就解决了覆盖在顶部的问题:


      解决了覆盖在顶部的问题
    • 2.然后问题又来了,如果由于网络原因或者其他原因webView加载不出来的话就会出现 顶部视图出现在顶部视图外面,webView下面显示黑色的问题:


      顶部视图显示在屏幕外面了,下面是黑色了

      解决办法:因为webView有一个scrollView的属性,所以一切有关滑动的我们都可以用UIScrollView的习性来处理它
      1.设置webView起始时的偏移量contentOffset
      _webView.scrollView.contentOffset = CGPointMake(0, -300);
      2.设置是否透明属性来去掉黑色
      _webView.opaque = NO;

    • 3.这里我遇到过一个问题是webView会横向左右小幅度滑动,但是我不希望它左右滑动,我的解决办法是:
    1. 遵守UIScrollViewDelegate代理
      _webView.sceollView.delegate = self;
      2.实现代理方法,当它滑动有偏移量时立刻使它偏移量归零
      - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
      CGPoint point = scrollView.contentOffset;
      if (point.x > 0) {
      scrollView.contentOffset = CGPointMake(0, point.y);
      }
      }
    • 到这里就结束了,效果图。


      效果图
    本篇的示例代码点击

    相关文章

      网友评论

        本文标题:UIWebView添加头视图及遇到的一些小问题

        本文链接:https://www.haomeiwen.com/subject/mprplttx.html