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

iPad OS18下需要适配,急盼 #292

Open
beiguancyc opened this issue Sep 20, 2024 · 10 comments
Open

iPad OS18下需要适配,急盼 #292

beiguancyc opened this issue Sep 20, 2024 · 10 comments

Comments

@beiguancyc
Copy link

在iPad OS18下外观会发生大变化,同时点击后hidesBottomBarWhenPushed也没有作用了,希望能早日更新,不胜感谢

@SupenBook
Copy link

+1

@buginux
Copy link

buginux commented Oct 12, 2024

同样碰到问题了,有大神适配下吗?

@spirej
Copy link

spirej commented Oct 16, 2024

+1

@feixue299
Copy link

feixue299 commented Oct 18, 2024

iOS 18 ipad的层级改变了
可以自己把tabbar加上去

  • 在ESTabBarController类中
if UIDevice.current.userInterfaceIdiom == .pad {
      if #available(iOS 18.0, *) {
          traitOverrides.horizontalSizeClass = .compact
          view.addSubview(tabBar)
      }
}

涉及旋转的话,使用autolayout布局

@Ave838
Copy link

Ave838 commented Oct 18, 2024

iOS 18 ipad的层级改变了 可以自己把tabbar加上去

  • 在ESTabBarController类中
if UIDevice.current.userInterfaceIdiom == .pad {
      if #available(iOS 18.0, *) {
          traitOverrides.horizontalSizeClass = .compact
          view.addSubview(tabBar)
      }
}

涉及旋转的话,使用autolayout布局

完美!但是跳转页面的话未隐藏

@feixue299
Copy link

iOS 18 ipad的层级改变了 可以自己把tabbar加上去

  • 在ESTabBarController类中
if UIDevice.current.userInterfaceIdiom == .pad {
      if #available(iOS 18.0, *) {
          traitOverrides.horizontalSizeClass = .compact
          view.addSubview(tabBar)
      }
}

涉及旋转的话,使用autolayout布局

完美!但是跳转页面的话未隐藏

我的结构是Nav+tab,目前没有这个问题,你的应该是tab+nav,我不太确定具体什么情况,如果没有隐藏的话,我感觉可以考虑一下在nav或tab中写一些监听的代码,来监听状态手动实现类似系统的隐藏

@Louis-Zeng
Copy link

我是tab套nav,也是tabbar在顶部导航栏了,求适配

@feixue299
Copy link

feixue299 commented Oct 24, 2024

我是tab套nav,也是tabbar在顶部导航栏了,求适配

我测试了一下,发现是系统多出来的一个层级没有隐藏

if UIDevice.current.userInterfaceIdiom == .pad {
  if #available(iOS 18.0, *) {
    traitOverrides.horizontalSizeClass = .compact
    
    if let classType = NSClassFromString("_UITabContainerView"), let view = view.subviews.first(where: { $0.isKind(of: classType) }) {
      view.isHidden = true
    }
    
    view.addSubview(tabBar)
  }
}

这样把他隐藏掉就可以了,但是只测试push的情况,隐藏会不会引起其他的情况目前未知

@Ave838
Copy link

Ave838 commented Nov 15, 2024

我是tab套nav,也是tabbar在顶部导航栏了,求适配

我测试了一下,发现是系统多出来的一个层级没有隐藏

if UIDevice.current.userInterfaceIdiom == .pad {
  if #available(iOS 18.0, *) {
    traitOverrides.horizontalSizeClass = .compact
    
    if let classType = NSClassFromString("_UITabContainerView"), let view = view.subviews.first(where: { $0.isKind(of: classType) }) {
      view.isHidden = true
    }
    
    view.addSubview(tabBar)
  }
}

这样把他隐藏掉就可以了,但是只测试push的情况,隐藏会不会引起其他的情况目前未知

_UITabContainerView涉及私有api吧 审核和后续迭代可能会受到影响

@hupengfei-hinterstellar

iOS 18 ipad的层级改变了 可以自己把tabbar加上去

  • 在ESTabBarController类中
if UIDevice.current.userInterfaceIdiom == .pad {
      if #available(iOS 18.0, *) {
          traitOverrides.horizontalSizeClass = .compact
          view.addSubview(tabBar)
      }
}

涉及旋转的话,使用autolayout布局

原来还需要加 view.addSubview(tabBar), 苹果有点奇葩,但这个解决了我的问题

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

8 participants