- 當然瓣距,如題所言,這是一個簡單的問題代咸,但是我在做的時候不是一下子就做出來的蹈丸,有可能LZ比較笨的類型吧。我覺得超過5分鐘沒解決的問題都應該記錄一下呐芥。故本篇以問題的形式來做描述逻杖。
-
1.直接加載到 UIWebView上會直接覆蓋在上面而不是你想要的在頂部。像這樣:
直接加載會覆蓋在上面
解決辦法:
1.頭視圖的frame的y坐標做調(diào)整
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.然后問題又來了思瘟,如果由于網(wǎng)絡原因或者其他原因webView加載不出來的話就會出現(xiàn) 頂部視圖出現(xiàn)在頂部視圖外面荸百,webView下面顯示黑色的問題:
頂部視圖顯示在屏幕外面了,下面是黑色了
解決辦法:因為webView有一個scrollView的屬性滨攻,所以一切有關滑動的我們都可以用UIScrollView的習性來處理它
1.設置webView起始時的偏移量contentOffset
_webView.scrollView.contentOffset = CGPointMake(0, -300);
2.設置是否透明屬性來去掉黑色
_webView.opaque = NO; - 3.這里我遇到過一個問題是webView會橫向左右小幅度滑動够话,但是我不希望它左右滑動,我的解決辦法是:
- 遵守UIScrollViewDelegate代理
_webView.sceollView.delegate = self;
2.實現(xiàn)代理方法光绕,當它滑動有偏移量時立刻使它偏移量歸零
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGPoint point = scrollView.contentOffset;
if (point.x > 0) {
scrollView.contentOffset = CGPointMake(0, point.y);
}
}
-
到這里就結(jié)束了女嘲,效果圖。
效果圖