UITableView无法通过导航栏显示

时间:2014-01-16 14:04:56

标签: objective-c uitableview ios7 uinavigationbar uicollectionview

我有一个UITableView作为我的自定义UIViewController的子视图。我想把它放在导航栏下面,当我滚动它时,我希望它通过导航栏以半透明的方式可见。为此,我应将表视图的y设置为零,并将属性edgesForExtendedLayout设置为UIRectEdgeAll;通过这种方式,事情应该有效,因为UITableView应该设置在导航栏的正下方。 我有一个大问题:如果我将y位置设置为零,则表视图位于导航栏下方,第一部分部分隐藏在半透明栏下方。此外,如果我将y位置设置为导航栏的高度,则表视图永远不会通过导航栏显示,因为它从导航栏下方开始。 实际上事情适用于UICollectionView,y位置设置为零,滚动时我可以通过导航栏看到UICollectionView。 有关这个问题的任何建议吗?这是iOS 7的错误吗?

1 个答案:

答案 0 :(得分:4)

使用UITableView的{​​{1}}将0的原点设置为contentInset,然后将topLayoutGuide设置为UIViewController

这可能看起来像这样

self.tableView.contentInset = UIEdgeInsetsMake(self.topLayoutGuide.length, 0, 0, 0);
self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(self.topLayoutGuide.length, 0, 0, 0);