【问题标题】:iPhone X not respecting set tab bar hidden animatediPhone X不尊重设置标签栏隐藏动画
【发布时间】:2018-05-02 01:20:26
【问题描述】:
我有一个视图控制器被推送到标签栏控制器内的导航控制器上。视图控制器 hidesBottomBarWhenPushed 并且在视图上将出现它显示一个工具栏。无论我尝试什么,当视图控制器被推动或弹出时,它都不会停止动画工具栏向上/向下滑动。这似乎只是 iPhone X 上的一个问题。有谁知道如何解决它?
【问题讨论】:
标签:
ios
uinavigationcontroller
uitabbarcontroller
uitoolbar
iphone-x
【解决方案1】:
这个答案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
}
}
}