1

我有一個UITableView作爲我的自定義UIViewController的子視圖。我想把它放在導航欄的下面,當我滾動它時,我希望它通過導航欄以半透明的方式可見。爲此,我應該將表視圖的y設置爲零,並將屬性edgesForExtendedLayout設置爲UIRectEdgeAll;這樣的事情應該可以工作,因爲UITableView應該設置在導航欄的正下方。 我有一個大問題:如果我將y位置設置爲零,表格視圖位於導航欄下方,並且第一部分隱藏在半透明條的下方。另外,如果我將y位置設置爲導航欄的高度,則表格視圖永遠不會通過導航欄顯示,因爲它從導航欄下方開始。 其實事情爲UICollectionView工作,y位置設置爲零,滾動時,我可以通過導航欄看到UICollectionView。 有關這個問題的任何建議?這是一個iOS 7的錯誤?UITableView沒有通過導航欄顯示

+0

我也遇到了這一點。 在iOS7中,如果在任何ViewController的'self.view'上添加tableView作爲第一個元素(視圖),它就會顯示這個問題。 你可以使用hack:**在添加tableView **之前,只需添加一個ZeroSize的虛擬「UIView」。 –

回答

4

設置UITableView的起源0,你不得不然後將其contentInset使用UIViewControllertopLayoutGuide

這可能會是這樣的

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