标签栏的
'transform'属性目前在iOS 13中不起作用,也许以后会起作用。
隐藏标签栏时,您只需要按住标签栏的最后一帧即可。
显示标签栏:-
func showTabbar(_ tabBarController: UITabBarController?,_ lastTabBarFrame: CGRect?) {
if #available(iOS 13,*) {
UIView.animate(withDuration: 0.3,animations: {
tabBarController?.tabBar.frame = lastTabBarFrame ?? .zero
},completion: { (_) in
})
} else {
UIView.animate(withDuration: 0.3,animations: {
tabBarController?.tabBar.transform = .identity
},completion: { (_) in
})
}
}
隐藏标签栏:-
func hideTabbar(_ tabBarController: UITabBarController?,_ lastTabBarFrame: CGRect?,_ view: UIView) {
if #available(iOS 13,animations: {
tabBarController?.tabBar.frame = CGRect(x: 0,y: view.bounds.height + (lastTabBarFrame?.height ?? 0.0) + 20,width: lastTabBarFrame?.width ?? 0.0,height: lastTabBarFrame?.height ?? 0.0)
}) { (_) in
}
} else {
UIView.animate(withDuration: 0.3,animations: {
tabBarController?.tabBar.transform = CGAffineTransform(translationX: 0,y: tabBarController?.tabBar.frame.height ?? 0.0)
}) { (_) in
}
}
}
使用方法:-
var lastTabBarFrame: CGRect?
self.lastTabBarFrame = self.tabBarController?.tabBar.frame
hideTabbar(self.tabBarController,self.lastTabBarFrame,self.view)
showTabbar(self.tabBarController,self.lastTabBarFrame)
本文链接:https://www.f2er.com/2997538.html