iOS
[Swift/iOS] 하단 탭 바 숨기기 tabbar
guswlsdk
2022. 6. 21. 18:43
반응형
위 영상처럼 화면을 눌렀을 때마다 탭 바가 내려가고 올라가는 동작이 필요한 경우가 있다. 탭 바를 어떻게 움직일 수 있을까?
[탭 바 숨기기]
self.tabBarController?.tabBar.frame.origin = CGPoint(x: 0, y: UIScreen.main.bounds.maxY)
UIScreen은 디바이스의 해상도이다.
tabbar를 숨기려면 디바이스 화면의 Y축의 최댓값으로 tabbar의 좌표를 설정해주면 된다.
[탭 바 나타내기]
let heigh = self.tabBarController?.tabBar.frame.height ?? 0
self.tabBarController?.tabBar.frame.origin = CGPoint(x: 0, y: UIScreen.main.bounds.maxY - heigh)
tabbar를 나타내려면 탭 바를 숨길 때 설명한 디바이스 화면의 Y축 최대 값에서 탭 바가 가진 height 크기를 빼주고 이 값을 탭 바의 좌표로 하면 된다.
다음은 작성자가 앱을 개발하면서 실제로 사용한 코드이다.
UIView.animate(withDuration:)을 이용하여 애니메이션 효과를 추가하였다.
func hideUI(){
UIView.animate(withDuration: 0.5){
self.searchTextField.alpha = 0
self.zoomInButton.alpha = 0
self.zoomOutButton.alpha = 0
self.currentButton.alpha = 0
self.mapListButton.alpha = 0
self.tabBarController?.tabBar.frame.origin = CGPoint(x: 0, y: UIScreen.main.bounds.maxY)
}
}
func showUI(){
UIView.animate(withDuration: 0.5){
self.searchTextField.alpha = 1
self.zoomInButton.alpha = 1
self.zoomOutButton.alpha = 1
self.currentButton.alpha = 1
self.mapListButton.alpha = 1
let heigh = self.tabBarController?.tabBar.frame.height ?? 0
self.tabBarController?.tabBar.frame.origin = CGPoint(x: 0, y: UIScreen.main.bounds.maxY - heigh)
}
}
반응형