隐藏TabBar后,UIWebView加载过程中和加载失败时,底部出现黑边的问题解决

在应用中自定义TabBar并隐藏原生TabBar后,当进入一个使用UIWebView的视图并隐藏TabBar,若网页加载缓慢或失败,底部会出现黑色区域。问题可能因WebView未及时重绘视图。通过预加载本地空白html页面,确保WebView在加载在线内容前后都有一次重绘,从而消除黑边问题。
摘要由CSDN通过智能技术生成

描述

我的应用里同时使用了 TabBar 和 Navigation Bar,由于原本的 TabBar 不能满足我的外观效果要求,我用自定义的 view 实现了一个 TabBar 的外观,隐藏了原本的 TabBar,切换视图的功能还是调用原来 TabBar 的接口。不知道是不是因为自定义TabBar的原因,当通过导航控制器进入第二个视图,并在第二个视图中隐藏TabBar时会出现一些问题,我的第二个视图是一个WebView,打开一个网页,如果网页加载较慢或者未加载到内容时,底部原来的TabBar位置是一块黑色区域,感觉上是那块区域没有被WebView利用到。如果页面加载成功那个黑色区域就会被WebView利用到。

原因

我猜想,可能是因为隐藏TabBar后,WebView并没有及时重新绘制视图,只有当其加载页面完成后才去更新。因此我的解决方案是做了一个空白的html页面(html结构完整,只是body为空白)放到工程中,WebView在加载在线数据之前先加载本地的空白html页面,在线数据加载失败时也加载一次空白html页面,这就相当于我们主动要求WebView去重新绘制视图。不知道我的猜想是否正确,不过用这个方案确实完美解决了黑边的问题。


主要代码

空白html页面内容,文件名为load_error.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值