Я новичок в iOS и Swift. В настоящее время я работаю над приложением, в котором мне нужно показать панель вкладок с большой кнопкой в центре. Учитывая нехватку времени, я создал кнопку в окне и программно поместил ее поверх панели вкладок. Теперь, когда я перехожу к этому экрану или удаляюсь от него, я добавляю/удаляю эту кнопку в viewDidAppear и viewDidDisappear соответственно. Это гарантирует, что когда панель вкладок исчезнет, кнопка также не будет отображаться, и аналогично, когда отображается панель вкладок, кнопка также добавляется сверху. Однако из-за того, что добавление и удаление происходит в режимах viewDidAppear и viewDidDisappear, возникает небольшая задержка при отображении и удалении кнопки, из-за которой появляется мгновенное мерцание. То же самое в viewWillAppear и viewWillDisappear вообще не работает. Кнопка не отображается или скрывается в методах will. Может кто-нибудь предложить, что, вероятно, будет здесь не так? Заранее спасибо. Я прилагаю снимок экрана, чтобы дать общее представление о том, как это должно выглядеть.
Скрытие наложенной кнопки на панели вкладок
comment
Вы можете попробовать скрыть эту кнопку, чтобы остановить эффект мерцания вместо удаления, а не решение, но это также сработает, я также видел, что, когда я добавляю свои классы CALayer, загрузка занимает мало времени.
- person iOS Geek   schedule 22.06.2018
comment
Я думаю, что это неправильный способ, вы должны добавить кнопку с учетом tabbarcontroller
- person SPatel   schedule 22.06.2018
comment
stackoverflow.com/a/48293806/6630644
- person SPatel   schedule 22.06.2018
comment
iOS Geek, спасибо за ответ. Мы тоже пытались спрятаться, но результат тот же. Это вызывает кратковременное мерцание. Мое лучшее предположение заключается в том, что панель вкладок отображается или удаляется в методах viewWillAppear и viewWillDisappear соответственно. Однако, поскольку мы скрываем/показываем кнопку в viewDidAppear/viewDidDisappear, это вызывает кратковременную задержку по отношению к вкладке.
- person Keya   schedule 22.06.2018
comment
SPatel, спасибо за ссылку, эти тоже проверю. Однако изначально мы начали с добавления представления в качестве подвида самой панели вкладок. Но мы столкнулись с проблемой, что кнопка все еще видна, когда мы переходим на другой экран.
- person Keya   schedule 22.06.2018
comment
встроить tabbarviewcontroller в навигационный контроллер, это работает для меня
- person SPatel   schedule 22.06.2018
comment
вы можете сослаться на этот itunes.apple.com/us/app/ люкс-радио/id1073120504?mt=8
- person SPatel   schedule 22.06.2018
Ответы (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)
}
}
person
SPatel
schedule
22.06.2018