ios - 如何在 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 框架!如何解决这个问题?
解决方案
看来,对于 iOS13,我们应该使用过渡而不是帧:
let transform = CGAffineTransform(translationX: 0, y: offsetY)
tabBar.transform = transform
对我有帮助。
框架更没用了。
推荐阅读
- c# - 选择 Cosmos DB 文档时展平对象
- c# - 急切加载多个级别错误:“包含属性 lambda 表达式无效”
- java - 布尔值是否自动装箱到同一个实例?
- spring-boot - 在 DefaultMessageListenerContainer 中配置 sessionAcknowledgeMode
- javascript - Chrome 扩展在网页中寻找资源,而不是扩展
- r - 当 reference_map = TRUE 时,Choroplethr 不会产生我可以看到的图形输出
- android - Android:使用个性化按键布局时布局不变
- ruby-on-rails - 电子邮件验证参数 - 测试中错误的参数数量 Michael Hartl Rails 教程
- python - Conda 中是否支持 Python 3.8?(我需要带窗口功能的 sqlite 3.25)
- c++ - C ++:在另一个函数中声明一个函数不是编译器错误所以......它是什么?