Скрытие наложенной кнопки на панели вкладок

Я новичок в iOS и Swift. В настоящее время я работаю над приложением, в котором мне нужно показать панель вкладок с большой кнопкой в ​​центре. Учитывая временные ограничения, я создал кнопку в окне и программно расположил ее над панелью вкладок. Теперь, когда я перемещаюсь к этому экрану или от него, я добавляю / удаляю эту кнопку в viewDidAppear и viewDidDisappear соответственно. Это гарантирует, что при удалении панели вкладок кнопка также не отображается, и аналогично, когда панель вкладок отображается, кнопка также добавляется сверху. Однако, поскольку добавление и удаление происходит в viewDidAppear и viewDidDisappear, существует небольшая задержка при рендеринге и удалении кнопки, из-за которой наблюдается кратковременное мерцание. Делать то же самое в viewWillAppear и viewWillDisappear не работает вообще. Кнопка не отображается или скрывается в методах "завещания". Может кто-нибудь подсказать, что может быть не так? Заранее спасибо. Я прилагаю снимок экрана, чтобы дать общее представление о том, как он должен выглядеть.

требуется интерфейс

1 ответ

Правильный способ добавить кнопку - добавить ее с точки зрения представления 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)
    }
}
Другие вопросы по тегам