在标签栏上隐藏覆盖的按钮

时间:2018-06-22 03:46:08

标签: ios swift viewdidappear viewdiddisappear

我是iOS和Swift的新手。我目前正在开发一个应用程序,该应用程序需要显示一个带有中心大按钮的标签栏。给定时间限制,我要做的是在窗口中创建一个按钮并将其以编程方式放置在选项卡栏的顶部。现在,当我导航到或离开此屏幕时,我分别在viewDidAppear和viewDidDisappear中添加/删除此按钮。这样可以确保当标签栏消失时也不会显示该按钮,并且类似地,在显示标签栏时,该按钮也将添加在顶部。但是,由于添加和删除发生在viewDidAppear和viewDidDisappear中,因此按钮的渲染和删除会稍有延迟,因此可以看到瞬时的flickr。在viewWillAppear和viewWillDisappear中执行相同操作根本不起作用。该按钮不显示或隐藏在“ will”方法中。有人可以建议这里可能出什么问题吗?提前致谢。我附上一个屏幕快照,以粗略地了解它的外观。

required ui

1 个答案:

答案 0 :(得分:0)

添加按钮的正确方法是在UItabBarController的视图中添加按钮,而不是在UIWindow中添加

class DashBoardViewController: UITabBarController {

    let button:UIButton = {
        let view = UIButton(frame: .zero)
        view.backgroundColor = .blue
        return view
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        initView()
    }

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        button.center = tabBar.center
    }

    private func initView() {
        button.center = tabBar.center
        view.addSubview(button)
    }
}