2013-09-24 56 views
5

就像Facebook/Venmo应用程序一样,我如何设置UITableView以便内容将在半透明导航栏和底部工具栏下滚动,但仍然可以滚动到顶部和底部没有它被导航或工具栏遮住了?iOS 7 UITableView使用透明导航栏和工具栏

谢谢!

回答

6

我假设你想构建一个iOS7应用程序。

通常,这是在您使用新SDK进行构建时自动完成的。

例如,您使用Autolayouts(扩展到视图控制器视图的整个高度)为您设置UITableViewUIScrollView

UIViewControllers在iOS 7中有一个新属性,名为edgesForExtendedLayout。这里的默认值是UIRectEdgeAll,意味着控制器将其内容扩展到所有边缘。如果您的视图控制器嵌套在UINavigationControllerUITabBarController中,那么它会自动设置内容插入,因此您可以滚动到顶部和底部并查看所有项目(或单元格或其他)。 然后,当您滚动屏幕上的内容时,您可以看到新的iOS7模糊效果。

请记住,为了在导航栏下方定位其他UI元素,以便它们保持可见并且不与栏重叠,您应该阅读topLayoutGuidebottomLayoutGuide的文档。从文档:

“[...]指示您不希望出现在半透明或透明UIKit栏(如状态或导航栏)后面的内容的最高垂直范围。 ]”

TopLayoutGuide

BottomLayoutGuide

+1

它不会自动调整。我查看了VC的Hiearchy,看起来好像没有嵌套在Table VC中的UINav或UIToolbar。列表中是否有一个? UINavigation栏来自导航控制器。 – Alan

+0

你说得对。它会自动补偿。但是,如果您从pre ios7应用程序移植您的应用程序,则需要小心如果您对tableview的插图进行了任何修改。我正在修改tableview的插入内容,使我的Pulldown to Refresh导致tableview的插入设置为零。现在需要考虑导航栏的高度。 – Alan