나의 기록, 현진록

[Swift/iOS] 하단 탭 바 숨기기 tabbar 본문

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)
    }
}

 

반응형