对于我正在制作的应用,我使用两个标签栏,一个位于屏幕底部,另一个位于屏幕顶部的导航栏下方。将标签栏重新定位到顶部后,当我运行应用程序时,有一个黑色矩形,如果没有重新定位,它将在那里。我如何摆脱这个黑匣子?
以下是移动标签栏的代码:
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()
}
}
答案 0 :(得分:0)
凯文,
两件事......首先你的框架不正确。 y值必须为64,因为这是导航栏的高度。如果将其设置为0,则工具栏将显示在其后面。
其次,在viewDidLayoutSubviews()
中设置框架不正确。根据Apple的说法:
当视图控制器视图的边界发生变化时,视图 调整其子视图的位置,然后系统调用它 方法
您没有更改超级视图,因此无需调用此功能。
只需在viewDidLoad()
中设置栏的框架即可完美运作。