我使用的是一个带有UITableView的普通视图控制器,它嵌入到导航控制器中,导航控制器嵌入到选项卡栏控制器中:
TabBar控制器
导航控制器
带TableView的UIViewController
我用的是大标题的导航栏。当我以通常的方式向上滚动时,导航栏的大标题具有正常的高度。但是当我触摸状态栏并且tableView滚动到顶部时,导航栏会在状态栏和标题之间获得额外的空白:
用手指滚动时的正常间距:https://ibb.co/0BWgB0T
触摸状态栏时的额外空间:https://ibb.co/LxFwDKx
唯一有助于避免额外空间的是:

edgesForExtendedLayout = UIRectEdge(rawValue: 0)

但它使tabBar变成灰色,而不是应该是白色,而且似乎是一个相当不正确的解决方案。
有没有人面临同样的问题?

最佳答案

好吧,我突然找到了解决办法。是的,它包括这行代码:

edgesForExtendedLayout = UIRectEdge(rawValue: 0)

但我也不得不将tabBar颜色设置为preferred,并在Interface Builder中禁用它的“半透明”属性。
希望它能帮助别人。

关于swift - NavigationBar奇怪的额外空白,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55610404/

10-11 05:28