我有一个约束在视图的UIButton
底部锚点的safeAreaLayoutGuide
和该UITabBar
中的UIView
。那里一切都很好。但是,当我全屏显示图像时,我会隐藏UITabBar
。关闭全屏显示后,我再次显示UITabBar
。但是,UIButton
向下移动并没有像UITabBar
隐藏之前那样约束到UITabBar
。 UIButton
部分覆盖了UITabBar
。有什么办法吗?
这是关闭的全屏代码。
@objc func dismissFullscreenImage(_ sender: UITapGestureRecognizer) {
sender.view?.removeFromSuperview()
self.navigationController?.isNavigationBarHidden = false
self.tabBarController?.tabBar.isHidden = false
}
答案 0 :(得分:2)
您可以尝试以下两种操作:
解决方案1:
将此行添加到dismissFullscreenImage():
self.view.setNeedsLayout()
这会使self.view
的布局无效,并使其重新布局。
解决方案2:
通过使navigationBar
和tabBar
不可见,可以避免重播视图。
与其通过更改其navigationBar
属性来隐藏/显示tabBar
和isHidden
,而是尝试设置其alpha
的值:
// hide
self.navigationController?.navigationBar.alpha = 0
self.tabBarController?.tabBar.alpha = 0
// show
self.navigationController?.navigationBar.alpha = 1
self.tabBarController?.tabBar.alpha = 1