uni-app,苹果端popup弹框样式异常问题解决.

2,958 阅读1分钟

先说结论:苹果版(含APP-PLUS/微信小程序)的<scroll-view/>无法被position:fixed|absolute等等定位效果穿透.

image.png

UI框架使用的是 u-view.

如同所示,由于未知的力量,<u-popup/>弹框被<u-tabs>给【截断】了,正常应该显示为最下方那张图那样.

第一次怀疑的方向:<u-tabs/>组件使用的是<scroll-view/>实现的左右滑动效果,因此怀疑是<scroll-view/>层级太高,所以遮挡了<u-popup/>.

在使用<view/>替换<scroll-view/>重写<u-tabs/>发现问题仍未解决.

第二次怀疑方向:<u-popup/>也是写在一个<scroll-view/>,可能是苹果的<scroll-view/>带有类似于overflow:hidden的效果.

通过uni.getSystemInfoSync().system.match(/iOS/g)来判断当前页面运行的手机系统环境是否为IOS. 如果是IOS环境,则将包裹<u-popup/><scroll-view/>替换为<view/>,bug成功解决.