0

보기 컨트롤러가 탭 막대 컨트롤러 안에있는 탐색 컨트롤러에 푸시되고 있습니다. 뷰 컨트롤러 hidesBottomBarWhenPushed 및 뷰에 툴바가 표시됩니다. 아무리 시도해도 View Controller가 눌려 지거나 튀어 나올 때 도구 모음을 위아래로 움직이는 애니메이션이 멈추지 않습니다. 이것은 iPhone X에서만 문제가되는 것 같습니다. 아무도 그 문제를 해결하는 방법을 알고 있습니까?iPhone X가 설정 탭 막대를 숨김 숨김 애니메이션

+0

이 같은 문제 : https://stackoverflow.com/questions/46232929/why-page-push-animation-tabbar-moving-up-in-the -iphone-x – Alexander

답변

0

이 답변 https://stackoverflow.com/a/47225653/1211917이 날 수 있습니다 :

class SafeAreaFixTabBar: UITabBar { 

    var oldSafeAreaInsets = UIEdgeInsets.zero 

    @available(iOS 11.0, *) 
    override func safeAreaInsetsDidChange() { 
     super.safeAreaInsetsDidChange() 

     if oldSafeAreaInsets != safeAreaInsets { 
      oldSafeAreaInsets = safeAreaInsets 

      invalidateIntrinsicContentSize() 
      superview?.setNeedsLayout() 
      superview?.layoutSubviews() 
     } 
    } 

    override func sizeThatFits(_ size: CGSize) -> CGSize { 
     var size = super.sizeThatFits(size) 
     if #available(iOS 11.0, *) { 
      let bottomInset = safeAreaInsets.bottom 
      if bottomInset > 0 && size.height < 50 && (size.height + bottomInset < 90) { 
       size.height += bottomInset 
      } 
     } 
     return size 
    } 

    override var frame: CGRect { 
     get { 
      return super.frame 
     } 
     set { 
      var tmp = newValue 
      if let superview = superview, tmp.maxY != 
       superview.frame.height { 
       tmp.origin.y = superview.frame.height - tmp.height 
      } 

      super.frame = tmp 
     } 
    } 
}