İOS hızlı uygulamamdaki sekme çubuğunu nasıl gizleyeceğimi anlamaya çalışıyorum. Süslü animasyonlar falan umurumda değil. ViewDidLoad () işlevine koyabileceğim bir şey.
Yanıtlar:
Bunu basitçe ViewDidLoad()yönteminizde kullanabilirsiniz.
self.tabBarController?.tabBar.hidden = true
Swift 3.0, 4.0, 5.0 için :
self.tabBarController?.tabBar.isHidden = true
Veya sekme çubuğunun z konumunu şu şekilde değiştirebilirsiniz:
self.tabBarController?.tabBar.layer.zPosition = -1
ve tekrar göstermek isterseniz:
self.tabBarController?.tabBar.layer.zPosition = 0
Kabul edilen cevap işe yarıyor, ancak diğer görünüme geçişte dalgalı bir animasyon var (Sekme Çubuğu animasyonu)
Ayrıca Kalpesh'in çözümü benim için mükemmel çalışmasına rağmen eklemek istedim, her görünüm denetleyicisinin hideBottomBarWhenPushed için bir özniteliğe sahip olduğunu öğrendim (film şeridine bakın.) Sekme çubuğunu gizlemek istiyorsanız, buna bir işaret koymalısınız. Ve harika çalışırdı.
Güncelleme: Bunun bilinen bir şey olup olmadığından emin değilim, ancak elma belgeleri sayfası şöyle diyor:
Sanırım bu, hidesBottomBarWhenPushed'ın temel değerini en üstteki görünüm denetleyicisinde (gezinme yığınındaki ilk) ayarlamanız gerektiği anlamına geliyor. Bunu true olarak ayarladıktan sonra, diğer görünüm denetleyicileri için false veya true olarak değiştirebilirsiniz. yığını. Ancak, en üstteki görünüm denetleyicinizin hidesBottomBarWhenPushed değeri false ise, gezinme yığınındaki diğer denetleyiciler için bir sekme çubuğu göstermez.
Controller.hidesBottomBarWhenPushed = true setini itmeden önce
let objCreateEventVC = CreateEventVC()
objCreateEventVC.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(objCreateEventVC, animated: false)
setViewControllers
TabBar'ın isHidden özelliğini ayarlamaya gerek yoktur.
Basitçe, ViewController'a gidin (StoryBoard'da) -> Öznitelik denetçisi -> 'Denetleyiciyi Görüntüle' bölümü altında, 'Basıldığında Alt Çubuğu Gizle' onay kutusunu seçin. Bu bir cazibe gibi çalışıyor.
'İsHidden' yoluna giderseniz, çok fazla işlem yapmanız gerekir, yani geri döndüğünüzde tekrar görünmesini sağlamak ve ayrıca tabBar'ı gizledikten sonra alttaki boş alanı kaldırmak için.
Hide Bottom Bar on Pushhoş olmayan bir animasyonu var, imo.
Hızlı 3.
self.tabBarController?.tabBar.isHidden = true
Ayrıca uzantı olarak da ayarlayabilirsiniz (Dharmesh Kheni cevabını kullanın)
extension UITabBar {
func tabsVisiblty(_ isVisiblty: Bool = true){
if isVisiblty {
self.isHidden = false
self.layer.zPosition = 0
} else {
self.isHidden = true
self.layer.zPosition = -1
}
}
Swift 4.0, 4.1, 4.2, 5.0 ve sonrası için programlı yöntem budur >:
tabBarController?.hidesBottomBarWhenPushed = true
veya
hidesBottomBarWhenPushed = true
NavigationBar'ı ve tabBar'ı gizlemek için sonraki işlevi kullanıyorum:
var tabBarHeight : CGFloat!
func fullScreenAction(){
if navigationController?.isNavigationBarHidden ?? false {
//Show navigationBar
navigationController?.setNavigationBarHidden(false, animated: false)
//Show tabBar
tabBarController?.tabBar.isHidden = false
//Update the height of tabBar
if (!(tabBarController?.tabBar.frame.size.height.isEqual(to: 0))!) {
tabBarHeight = self.tabBarController?.tabBar.frame.size.height
}
tabBarController?.tabBar.frame.size.height = tabBarHeight
} else {
//Hide navigationBar
navigationController?.setNavigationBarHidden(true, animated: false)
//Hide tabBar
tabBarController?.tabBar.isHidden = true
//Update the height of tabBar
tabBarHeight = tabBarController?.tabBar.frame.size.height
tabBarController?.tabBar.frame.size.height = 0
}
}
Ekran yönü tabBar'ın yüksekliğini de değiştirdiğinde, yüksekliği yeniden boyutlandırmak için tam ekrandan çıkmak için sonraki işlevi kullanıyorum:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
if navigationController?.isNavigationBarHidden ?? false {
navigationController?.setNavigationBarHidden(false, animated: false)
tabBarController?.tabBar.isHidden = false
}
}
Umarım sizin için yararlıdır.
vc.hidesBottomBarWhenPushed = trueişi yapmalı. Sekme çubuğunu manuel olarak GÖSTERMEYİN ve SAKLAMAYIN.