Swift로 iOS를 개발할 때 NavigationBar와 TabBar를 숨기는 방법

2491 단어
예를 들어, 만약 내가 들어갈 때 NavigationBar와 TabBar를 동시에 숨길 페이지가 있다면, 나는 그 페이지의 ViewController 코드에 아래의 코드를 추가할 것이다.이루어질 수 있을 거예요.다음은 모두에게 주의해야 할 점 하나하나를 알려주겠다.
1、Navigation Bar를 숨기면 setTab Bar Visible 이 구절을 사용하지 않으면 된다
override func viewWillAppear(animated: Bool) {
    setTabBarVisible(!tabBarIsVisible(), animated: true)
    setNavBarVisible(!navBarIsVisible(), animated: true)
}

2、이것들은 모두 복사하면 된다
func setTabBarVisible(visible:Bool, animated:Bool) {
    if (tabBarIsVisible() == visible) { return }
    let frame = self.tabBarController?.tabBar.frame
    let offsetY = (visible ? CGFloat(0) : 49.0)           

여기는 편이량입니다. 여기를 수정할 때 반드시 필요에 따라 수정해야 합니다. 우선 setTabBarVisible (!tabBarIsVisible (),animated:true) 함수는 ViewWill Appear 함수에 넣는다고 가정하십시오. (예와 같습니다.)즉, 이 함수는 이 인터페이스에서 불러올 때 발생한다. 그러면 자신의 필요를 봐라. 이 페이지가 필요하다. (만약 그때 TabBar가 없었다면 TabBar를 표시했을 것이고, TabBar가 있었다면 있었고, 숨기지 않았을 것이다)그렇다면 여기에 설정된 값은 (visible? -49.0: CGFloat(0)    이 말은 사실 간단하게 TabBar의 위아래로 이동을 뜻함) = (TabBar 있어? (없으면 이거 하고): (이거 하고) 󈄦  : 그래서 사칭 전후 두 개가 각각 -49.0(위로 이동), 아래로 이동(위로 이동), CGBBBar (위로 이동), 아래로 이동(위로 이동하지 않고 가운데로 이동) (중이동) (중이동이 안 하는 중이동이 안 하는 중이동(중 이동) 두 개가 각각 -49.0(위로 이동) (위로 이동하지 않는 중이동을 하지 않는 중이동을 하지 않는 중이동을 하지 않는 중이동을 하지 않는 중이동(중이동) (중이동을 하지 않는 중이동을 하지 않는 중개, 이것은 이 함수가 도대체 무엇을 했는지 대표하고 있다
    let duration:NSTimeInterval = (animated ? 0.3 : 0.0)   

다 잘 아실 거예요. 0.3은 숨길 때의 지속 시간입니다.
    if frame != nil {
        UIView.animateWithDuration(duration) {
        self.tabBarController?.tabBar.frame = CGRectOffset(frame!, 0, offsetY!)
        return
        }
    }
}

    func tabBarIsVisible() ->Bool {
    return self.tabBarController?.tabBar.frame.origin.y < CGRectGetMaxY(self.view.frame)
}
func setNavBarVisible(visible:Bool, animated:Bool) {
    if (navBarIsVisible() == visible) { return }
    let frame = self.navigationController?.navigationBar.frame
    let offsetY = (visible ? CGFloat(0) : -64.0)            

이곳의 편향도 TabBar의 것과 같으니 여러분이 참조하여 보시면 됩니다.
    let duration:NSTimeInterval = (animated ? 0.3 : 0.0)
    if frame != nil {
    UIView.animateWithDuration(duration) {
        self.navigationController?.navigationBar.frame = CGRectOffset(frame!, 0, offsetY)
        return    
    }
}
    func navBarIsVisible() ->Bool {
        return self.navigationController?.navigationBar.frame.origin.y > CGRectGetMinY(UIScreen.mainScreen().bounds)
}

좋은 웹페이지 즐겨찾기