Objective c UITableView未通过导航栏显示

Objective c UITableView未通过导航栏显示,objective-c,uitableview,ios7,uinavigationbar,uicollectionview,Objective C,Uitableview,Ios7,Uinavigationbar,Uicollectionview,我有一个UITableView作为自定义UIViewController的子视图。我想把它放在导航栏下面,当我滚动它时,我想让它以半透明的方式通过导航栏可见。为此,我应该将表视图的y设置为零,并将属性edgesForExtendedLayout设置为UIRectEdgeAll;通过这种方式,这些功能应该可以工作,因为UITableView应该设置在导航栏的正下方。 我有一个大问题:如果我将y位置设置为零,表视图将位于导航栏下,而第一部分将部分隐藏在半透明栏下。此外,如果我将y位置设置为导航栏的高

我有一个
UITableView
作为自定义
UIViewController
的子视图。我想把它放在导航栏下面,当我滚动它时,我想让它以半透明的方式通过导航栏可见。为此,我应该将表视图的y设置为零,并将属性
edgesForExtendedLayout
设置为
UIRectEdgeAll
;通过这种方式,这些功能应该可以工作,因为
UITableView
应该设置在导航栏的正下方。 我有一个大问题:如果我将y位置设置为零,表视图将位于导航栏下,而第一部分将部分隐藏在半透明栏下。此外,如果我将y位置设置为导航栏的高度,则无法通过导航栏看到表视图,因为它从导航栏下方开始。 实际上,
UICollectionView
,y位置设置为零,滚动时,我可以通过导航栏看到
UICollectionView

对这个问题有什么建议吗?这是iOS 7错误吗?

使用
UIViewController
topLayoutGuide
UITableView
的原点设置为
0
,然后将其
contentInset
设置为

看起来可能是这样的

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

使用
UIViewController
topLayoutGuide
UITableView的原点设置为
0
,然后将其
contentInset
设置为

看起来可能是这样的

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

我也遇到了这个。在iOS7中,如果在任何ViewController的
self.view
上添加一个tableView作为第一个元素(视图),就会显示这个问题。您可以使用一个hack:只需在添加tableView之前添加一个零大小的虚拟
UIView
。我也遇到了这个问题。在iOS7中,如果在任何ViewController的
self.view
上添加一个tableView作为第一个元素(视图),就会显示这个问题。您可以使用hack:只需在添加tableView之前添加一个零大小的虚拟
UIView