iOS 7 UITableView 使用透明的导航栏和工具栏
Posted
技术标签:
【中文标题】iOS 7 UITableView 使用透明的导航栏和工具栏【英文标题】:iOS 7 UITableView using transparent Navigation bar and toolbar 【发布时间】:2013-09-24 20:10:54 【问题描述】:就像 Facebook / Venmo 应用程序一样,如何设置 UITableView 以便内容将在半透明导航栏和底部工具栏下滚动,但您仍然可以滚动到顶部和底部而不会被导航或工具栏遮挡?
谢谢!
【问题讨论】:
【参考方案1】:我假设你想构建一个 ios7 应用程序。
通常,当您使用新的 SDK 构建时,这会自动完成。
例如,您将 UITableView
或 UIScrollView
设置为 Autolayouts(扩展到视图控制器视图的整个高度)。
UIViewControllers
在 iOS 7 中有一个名为 edgesForExtendedLayout
的新属性。这里的默认值为UIRectEdgeAll
,表示控制器将其内容扩展到所有边缘。如果您的视图控制器嵌套在UINavigationController
或UITabBarController
中,那么它会自动设置内容插入,因此您可以滚动到顶部和底部并查看所有项目(或单元格或其他)。
然后,当您将内容滚动到屏幕外时,您可以看到新的 iOS7 条形模糊效果。
请记住,要将其他 UI 元素定位在导航栏下方,以便它们保持可见且不与导航栏重叠,您应该阅读 topLayoutGuide
和 bottomLayoutGuide
的文档。来自文档:
“[...] 表示您不希望出现在半透明或透明 UIKit 栏(例如状态或导航栏)后面的内容的最高垂直范围。[...]”
TopLayoutGuide
BottomLayoutGuide
【讨论】:
它不会自动调整。我查看了 VC 的 Hiearchy,似乎没有 UINav 或 UIToolbar 嵌套在 Table VC 中。列表中应该有一个吗? UINavigation 栏来自导航控制器。 你是对的。它会自动补偿。但是,如果您要从 ios7 之前的应用程序移植您的应用程序,则在对 tableview 的插图进行任何修改时需要小心。我正在修改我的下拉刷新的表格视图的插图,这导致表格视图的插图设置为零。它现在需要考虑导航栏的高度。以上是关于iOS 7 UITableView 使用透明的导航栏和工具栏的主要内容,如果未能解决你的问题,请参考以下文章