Bark icon indicating copy to clipboard operation
Bark copied to clipboard

添加 iPad 支持

Open iGuan7u opened this issue 1 year ago • 4 comments

看到 这个 issue有感,这么实用的应用如果能支持 iPad 就更好了,Swift/RX 苦手,略尽绵力。

代码改动似乎不小,以下希望能帮助 Review:

  • Bark/AppDelegate 增加判断版本跟设备型号,如果是 iPad 设备改用系统的 UISplitViewController 承载
  • iPad 布局代码:BarkSplitViewController, SectionViewController-iPad, SectionViewModel-iPad
  • 其他的改动都是为了适配 iPad actionSheet 的展示,由 rx.modelSelected 改为 rx.itemSelected,改由增加传递 indexPath,方便 actionSheet popover 能正确定位 sourceView,否则 iPad 下单纯展示 actionSheet 会直接出现崩溃

已自测已知路径,能正常支持 iPad 分屏模式: Simulator Screenshot - iPad Air (5th generation) - 2024-08-17 at 17 15 18 Simulator Screenshot - iPad Air (5th generation) - 2024-08-17 at 17 17 24 Simulator Screenshot - iPad Air (5th generation) - 2024-08-17 at 17 17 45

iGuan7u avatar Aug 17 '24 09:08 iGuan7u

非常感谢!!我会找时间测试一下(需要点时间,最近比较忙),没有问题后会合并,再次感谢!

Finb avatar Aug 19 '24 01:08 Finb

我大致review了一下代码,基本没啥大问题,非常感谢你的pr!

已知的问题: 因为现在还支持着iOS13,我调整了一下 UISplitViewController的写法 但没怎么用过 UISplitViewController 可能不太对。之后我会再测试一下

修复了操作提示不显示问题,将BarkSnackbarController 挪到了 UISplitViewController 的上一级。

还有就是我发现 UISplitViewController 并没有保存上一次打开的页面,但希望能和 StateStorageTabBarController 一样,保存上一次打开的页面,并且希望他们之间是能联动的,一个改变另外一个同时改变。

还有就是优化了一下切换页面频繁创建实例的问题,这一块我没仔细看,之后我可能会继续改一下,希望页面都能够复用。

Finb avatar Aug 19 '24 08:08 Finb

好的呢,没想到这么快就有回应

  • UISplitViewController 在 iOS14 上面新增了特性,像是 iPad 分屏模式的效果都是 iOS14 能自动兼容,我当初想着 iOS13 的存量用户应该不多,能提供最基础的用户体验估计就好(UITabBarController 效果也是可以接受的)
  • 确实保存上一次打开的页面还没完善,似乎在切换分屏的场景下需要额外兼容,所以没继续优化

要是能 Merge 进入 main 还是会感到很荣幸的

iGuan7u avatar Aug 19 '24 09:08 iGuan7u

有道理,我已经将 UISplitViewController 改回iOS14的新版本了

同时初步添加了一下默认打开页面,不过还需要同步 BarkSplitViewController 中的 sectionViewController 和 snackBarController 的页面,现在切换时打开的页面不一致是各自独立的。

Finb avatar Aug 20 '24 07:08 Finb

测试了一下好像没啥问题了,已经合并了。非常感谢!!。 另外commit的邮箱好像并没有绑定到github,所以现在是匿名显示

Finb avatar Sep 02 '24 08:09 Finb

🎉

iGuan7u avatar Sep 02 '24 13:09 iGuan7u