Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iPhone 6s机型导航栏渲染不出来 #13

Open
weixisheng opened this issue Oct 28, 2019 · 9 comments
Open

iPhone 6s机型导航栏渲染不出来 #13

weixisheng opened this issue Oct 28, 2019 · 9 comments

Comments

@weixisheng
Copy link

在iPhone 6s部分机型下,偶现导航栏渲染不出来或者高度为0的情况,导致下边布局顶上去了。
微信截图_20191028100316

@lingxiaoyi
Copy link
Owner

你试一下是不是微信版本问题

@lingxiaoyi
Copy link
Owner

你也可以测试下我例子的demo会不会也出现这种情况

@weixisheng
Copy link
Author

应该是ios第一次渲染拿不到高度值

@lingxiaoyi
Copy link
Owner

我这里的iphone6s没出现这种情况的

@weixisheng
Copy link
Author

是的,绝大部分手机都是正常的。不过手机那么多,难保出厂时没有一些问题,可以忽略。
昨天在客户的iPhone XS Max重现出来了,导航栏紧接着就是一个绝对定位的背景图,因为需要覆盖导航栏。

<nav-bar background="transparent"></nav-bar>
<view class="ad" style="padding-top: {{navbarTop}}"></view>
  data = {
     navbarTop: '64px'
  }
  onShow() {
     let t = wx.getStorageSync('systemInfo')
     if (t) {
       this.navbarTop = (t.screenTop || t.navbarTop) + 4 + 'px'
    }
  }
  .ad {
     position: absolute;
     top: 0;
     right: 0;
     left: 0;
  }
  • 方案一
    如上,就是给个默认值,但是切换页面之后抖动,再次回来就会正常
  • 方案二
    onShow里面不取缓存,重新获取系统信息

@lingxiaoyi
Copy link
Owner

主要是我测那那么多款手机没见过这个问题 所有我就没采取默认值的策略 如果你用我的demo在线这个问题 你可以告诉我手机型号 版本 微信版本信息 我可以优化添加默认值

@xmsz
Copy link

xmsz commented Oct 31, 2019

这个问题存在估计都好几辈子了... 是个已知问题,ios特定机型或者情况下获取不到胶囊高度,需要延迟获取。所以目前做法还是固定写死...

@lingxiaoyi
Copy link
Owner

因为我也反反复复测试了几十款手机并没有出现获取不到的情况,如您遇到胶囊信息获取为空的情况,请回复给我手机型号 微信版本 小程序依赖库版本号.解决方案其实也不难,获取不到的话可以加个默认值,如果只有苹果手机出现这个问题的话,那就更简单了,苹果手机上下间隙值固定为4*2,写死就行

@lingxiaoyi
Copy link
Owner

对于getMenuButtonBoundingClientRect 胶囊按钮信息获取不到或者此方法报错问题已修复,获取不到就设置默认值的解决方案

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants