首页 > 解决方案 > 重新定位标签栏问题

问题描述

对于我正在制作的应用程序,我使用了两个标签栏,一个位于屏幕底部,一个位于屏幕顶部的导航栏下方。将标签栏重新定位到顶部后,当我运行应用程序时,如果不重新定位,则会出现一个黑色矩形。如何摆脱这个黑匣子?

在此处输入图像描述

这是移动标签栏的代码:

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()
    }
}

标签: swiftuitabbar

解决方案


凯文,

两件事..首先你的框架不正确。y 值必须为 64,因为这是导航栏的高度。如果您将其设置为 0,您的工具栏将出现在其后面。

其次,设置框架viewDidLayoutSubviews()不正确。据苹果称:

当视图控制器视图的边界发生变化时,视图会调整其子视图的位置,然后系统调用此方法。

您没有更改超级视图,因此无需调用此函数。

只需设置酒吧的框架,viewDidLoad()它就会完美地工作。


推荐阅读