Swift 导航栏有额外的空白

Swift 导航栏有额外的空白,swift,scroll,tableview,uinavigationbar,Swift,Scroll,Tableview,Uinavigationbar,我使用的是一个带有UITableView的普通视图控制器,它嵌入到导航控制器中,导航控制器嵌入到选项卡栏控制器中: TabBar控制器 导航控制器 带TableView的UIViewController 我使用的导航栏标题很大。当我以通常的方式向上滚动时,标题较大的导航栏具有正常高度。但当我触摸状态栏,tableView滚动到顶部时,导航栏在状态栏和标题之间会有额外的空白: 用手指滚动时的正常空间: 触摸状态栏时的额外空间: 唯一有助于避免额外空间的方法是: edgesForExtended

我使用的是一个带有UITableView的普通视图控制器,它嵌入到导航控制器中,导航控制器嵌入到选项卡栏控制器中:

  • TabBar控制器
  • 导航控制器
  • 带TableView的UIViewController
我使用的导航栏标题很大。当我以通常的方式向上滚动时,标题较大的导航栏具有正常高度。但当我触摸状态栏,tableView滚动到顶部时,导航栏在状态栏和标题之间会有额外的空白:

用手指滚动时的正常空间:

触摸状态栏时的额外空间:

唯一有助于避免额外空间的方法是:

edgesForExtendedLayout = UIRectEdge(rawValue: 0)
但它使tabBar变成灰色,而不是本来应该是白色的,而且似乎是一个非常不正确的解决方案


有人遇到过同样的问题吗?

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

edgesForExtendedLayout = UIRectEdge(rawValue: 0)
但我还必须将tabBar颜色设置为Preferred,并在Interface Builder中禁用其“半透明”属性


希望它能帮助别人

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

edgesForExtendedLayout = UIRectEdge(rawValue: 0)
但我还必须将tabBar颜色设置为Preferred,并在Interface Builder中禁用其“半透明”属性


希望它能帮助别人

这是处理
UITableView
时的预期行为。默认情况下,在iOS中点击状态栏时,表格视图会滚动到顶部。在设备的“设置”应用程序中,您会发现类似的行为。@nayem,是的,我知道:)我描述的问题是,使用tableView的scrollsToTop(触摸状态栏)会增加导航栏的高度。无论如何,我已经找到了一个解决方案,并写在下面,这不是问题所在。相反,您使用的是大标题导航栏,它占据了增加的高度。当表格视图滚动到顶部时,它会强制导航栏重置为默认的初始状态,这就是为什么会增加导航栏的高度。正如我在前面的评论中提到的,尝试检查设置应用程序中的行为,你就会知道我的意思。这是处理
UITableView
时的预期行为。默认情况下,在iOS中点击状态栏时,表格视图会滚动到顶部。在设备的“设置”应用程序中,您会发现类似的行为。@nayem,是的,我知道:)我描述的问题是,使用tableView的scrollsToTop(触摸状态栏)会增加导航栏的高度。无论如何,我已经找到了一个解决方案,并写在下面,这不是问题所在。相反,您使用的是大标题导航栏,它占据了增加的高度。当表格视图滚动到顶部时,它会强制导航栏重置为默认的初始状态,这就是为什么会增加导航栏的高度。正如我在前面的评论中提到的,尝试检查设置应用程序中的行为,你就会知道我的意思。