在我的应用程序中,我使用顶部的工具栏,因为它更好地为我需要的项目设置条形按钮项目,并且我将工具栏委托给视图控制器并告诉它是顶部附加的。我还有一个隐藏状态栏的设置,因此发生的问题是当状态栏设置为隐藏,应用程序关闭然后重新打开时,会调用positionForBar,但由于没有状态栏,它对工具栏没有任何作用,所以当我重新打开状态栏时,应用程序看起来很奇怪,工具栏向下20px,状态栏显示但状态栏没有背景,所以它看起来很奇怪尽管如此仍然调用positionForBar,但出于某种原因,我需要再次关闭应用程序,然后工具栏将再次在状态栏后面绘制。我发现如果我从superview中删除工具栏并重新添加它,它将在状态栏后面绘制,或者我可以删除positionForBar并将我自己的视图作为状态栏的背景,我的旧问题这个解决方案是它不会透明(我可能会在那里放一个20px的工具栏,但也许?)我的问题是删除它并重新添加视图然后我需要移动大量的代码,因为删除它并重新添加它与约束混淆所以我需要完全重建整个视图只是为了重绘状态栏后面。有没有办法只是刷新视图或什么?我已经尝试了setNeedsLayout和setNeedsDisplay,除了删除和重新添加之外,没有什么能够重新绘制
答案 0 :(得分:1)
尝试手动设置UIToolbar的框架:
topToolbar.frame = CGRectZero
或更新约束,或者会导致UIToolbar更新其附件。