UIWebView添加頭視圖及遇到的一些小問題

  • 當(dāng)然,如題所言,這是一個(gè)簡單的問題,但是我在做的時(shí)候不是一下子就做出來的,有可能LZ比較笨的類型吧。我覺得超過5分鐘沒解決的問題都應(yīng)該記錄一下。故本篇以問題的形式來做描述。
  • 1.直接加載到 UIWebView上會直接覆蓋在上面而不是你想要的在頂部。像這樣:


    直接加載會覆蓋在上面

    解決辦法:
    1.頭視圖的frame的y坐標(biāo)做調(diào)整
    2.webView設(shè)置contentInset
    如我這樣設(shè)置頭視圖的frame:
    self.frame = CGRectMake(0, -300, [UIScreen mainScreen].bounds.size.width, 300);
    這樣設(shè)置webView的contentInset:
    _webView.scrollView.contentInset = UIEdgeInsetsMake(300, 0, 0, 0);
    這樣就解決了覆蓋在頂部的問題:


    解決了覆蓋在頂部的問題
  • 2.然后問題又來了,如果由于網(wǎng)絡(luò)原因或者其他原因webView加載不出來的話就會出現(xiàn) 頂部視圖出現(xiàn)在頂部視圖外面,webView下面顯示黑色的問題:


    頂部視圖顯示在屏幕外面了,下面是黑色了

    解決辦法:因?yàn)閣ebView有一個(gè)scrollView的屬性,所以一切有關(guān)滑動的我們都可以用UIScrollView的習(xí)性來處理它
    1.設(shè)置webView起始時(shí)的偏移量contentOffset
    _webView.scrollView.contentOffset = CGPointMake(0, -300);
    2.設(shè)置是否透明屬性來去掉黑色
    _webView.opaque = NO;

  • 3.這里我遇到過一個(gè)問題是webView會橫向左右小幅度滑動,但是我不希望它左右滑動,我的解決辦法是:
  1. 遵守UIScrollViewDelegate代理
    _webView.sceollView.delegate = self;
    2.實(shí)現(xiàn)代理方法,當(dāng)它滑動有偏移量時(shí)立刻使它偏移量歸零
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    CGPoint point = scrollView.contentOffset;
    if (point.x > 0) {
    scrollView.contentOffset = CGPointMake(0, point.y);
    }
    }
  • 到這里就結(jié)束了,效果圖。


    效果圖
本篇的示例代碼點(diǎn)擊
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容