2013-12-12 87 views
3

在我的iOS 7應用軟件,我有我的看法爲「下上線棒擴展邊緣」,所以我的UITableView有,當你把它的滾動導航欄下,因爲你是向下滾動的半透明效果。但是當您滾動回頂部或加載時,它會正確定位導航欄下方的第一個單元格,而不是它的下方。的UITableView indexPathsForVisibleRows返回錯誤的行

的問題是,即indexPathsForVisibleRows看到的導航欄下方的細胞。因此,舉例來說,如果我們向下滾動,使我們看到的是細胞指數1(第二小區),細胞指數0是導航欄下方,當我們調用indexPathsForVisibleRows,它返回索引0而不是索引1爲最低小區是是可見的。

解決這個任何其他方式?

+0

什麼問題導致你?單元格對您而言實際上不可見嗎? – Wain

+0

我需要讓高層看見小區的指數,一個是我們可以清楚地看到,沒有一個是導航欄 – Jesse

+1

導航欄下的細胞是可見的後面。它在導航欄後面顯示。您需要一種不同的方法來確定導航欄下方的單元格。 – rmaddy

回答

8

一種選擇是讓導航欄的底部的y座標和翻譯這給tableview中的座標系。一旦你有了,你可以從tableview中獲取indexPath或者cell。

UINavigationBar *navbar = self.navigationController.navigationBar; 
CGRect localFrame = [self.tableView convertRect:navbar.bounds fromView:navbar]; 
CGPoint point = CGPointMake(0, localFrame.origin.y + localFrame.size.height + 1); 
NSIndexPath *path = [self.tableView indexPathForRowAtPoint:point]; 
+0

非常有用的方法,但不是1,我不得不提供Navibar的高度。 – thandasoru

+0

由於某些原因,即使添加NavBarHeight,我仍然得到不正確的值,使用此解決方案只有0和1作爲.Row。 –

相關問題