0
我有一個視圖控制器被推到一個導航控制器是在標籤欄控制器內。視圖控制器隱藏底部按鈕,當按下按鈕時,會出現它顯示的工具欄。無論我嘗試什麼,當視圖控制器被按下或彈出時,它都不會停止向上/向下滑動工具欄的動畫。這似乎只是iPhone X上的一個問題。有誰知道如何解決它?iPhone X不尊重設置標籤欄隱藏動畫
我有一個視圖控制器被推到一個導航控制器是在標籤欄控制器內。視圖控制器隱藏底部按鈕,當按下按鈕時,會出現它顯示的工具欄。無論我嘗試什麼,當視圖控制器被按下或彈出時,它都不會停止向上/向下滑動工具欄的動畫。這似乎只是iPhone X上的一個問題。有誰知道如何解決它?iPhone X不尊重設置標籤欄隱藏動畫
這個答案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
}
}
}
同樣的問題: https://stackoverflow.com/questions/46232929/why-page-push-animation-tabbar-moving-up-in-the -iPhone-X – Alexander