首页 > 解决方案 > 如何在 iOS 13 中更改 tabBar 的框架?

问题描述

目前,此代码:

Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true) { _ in
            print(">>>>> self.tbc.tabar.frame: \(self.tabBarController?.tabBar.frame); \(self.tabBarController) before")
            self.tabBarController?.tabBar.frame = CGRect(x: 0.0, y: 812.0, width: 375.0, height: 83.0)
            print(">>>>> self.tbc.tabar.frame: \(self.tabBarController?.tabBar.frame); \(self.tabBarController) after")
        }

做这个

self.tbc.tabar.frame: 可选((0.0, 729.0, 375.0, 83.0)); 可选(ApplicationViewController:0x11600c600)之前

self.tbc.tabar.frame: 可选((0.0, 812.0, 375.0, 83.0)); 可选(ApplicationViewController:0x11600c600)之后

self.tbc.tabar.frame: 可选((0.0, 729.0, 375.0, 83.0)); 可选(ApplicationViewController:0x11600c600)之前

self.tbc.tabar.frame: 可选((0.0, 812.0, 375.0, 83.0)); 可选(ApplicationViewController:0x11600c600)之后

它适用于 iOS 12

self.tbc.tabar.frame: 可选((0.0, 812.0, 375.0, 83.0)); 可选(ApplicationViewController:0x7f86e7850000)之前

self.tbc.tabar.frame: 可选((0.0, 812.0, 375.0, 83.0)); 可选(ApplicationViewController:0x7f86e7850000)之后

所以,我不能改变 tabBar 框架!如何解决这个问题?

标签: iosswiftuitabbarcontrollerios13

解决方案


看来,对于 iOS13,我们应该使用过渡而不是帧:

let transform = CGAffineTransform(translationX: 0, y: offsetY)
tabBar.transform = transform

对我有帮助。

框架更没用了。


推荐阅读