swift - 重新定位标签栏问题
问题描述
对于我正在制作的应用程序,我使用了两个标签栏,一个位于屏幕底部,一个位于屏幕顶部的导航栏下方。将标签栏重新定位到顶部后,当我运行应用程序时,如果不重新定位,则会出现一个黑色矩形。如何摆脱这个黑匣子?
这是移动标签栏的代码:
import UIKit
class tabControllerDistrict: UITabBarController {
@IBOutlet var bar: UITabBar!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidLayoutSubviews() {
self.bar.frame = CGRect( x: 0, y: 0, width: 320, height: 50)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
解决方案
凯文,
两件事..首先你的框架不正确。y 值必须为 64,因为这是导航栏的高度。如果您将其设置为 0,您的工具栏将出现在其后面。
其次,设置框架viewDidLayoutSubviews()
不正确。据苹果称:
当视图控制器视图的边界发生变化时,视图会调整其子视图的位置,然后系统调用此方法。
您没有更改超级视图,因此无需调用此函数。
只需设置酒吧的框架,viewDidLoad()
它就会完美地工作。
推荐阅读
- php - PHP Session Var 不跨页面传输
- javascript - 在 Firebase admin sdk 上应用实时数据库规则
- android - 如何使用几个按钮,它们之间有依赖关系?安卓工作室
- google-cloud-platform - 将目录上传的文件类型设置到 Google 存储
- angular - 如何使用 Angular 6 更新图像
- c# - 使用 Linq 从 xml 文件读取到 objectlist
- ios - 如何使用 xib 文件正确创建自定义单元,注册并加载它?
- javascript - Gulp autoprefixer 已安装但未添加前缀
- angular - Angular 测试组件显示在测试窗口中
- java - 自动装配多个 SimpleJobLauncher