我有一個帶有pagingEnabled的UITableView。每個單元格佔用了表格的查看區域。意思是,每個單元格與桌子的高度和寬度相同。我正在使用具有name屬性的自定義單元格。我想在標籤中顯示當前(可查看)單元格的名稱。這對於第一個和最後一個單元格都可以正常工作,但是任何內容都不是那麼容易。問題是這些中間單元格調用了兩次cellForRowAtIndexPath。以下是從第一個單元格到最後一個單元格然後回滾的樣子。我列出的指標,以便爲的cellForRowAtIndexPath火災該行:從UITableView中獲取可見單元pagingEnabled
Row indexPath.row
0 0 //view loads and table appears
1 1,2 //user scrolls to second cell. cellForRowAtIndexPath fires twice. First time indexPath.row is one and second time it is two. This causes cell two's name to display in the label, rather than cell one.
2 2,3
3 3
//user starts scrolling back to first cell
2 1,2
1 1,0
0 0
我可以設置使用一個NSDate對象來檢測,如果我在一箇中間行來的。通過以前的時間與現在的區別,我會知道的。但是,如果用戶在單元格中快速滾動,則可能不起作用。還有另一種方法可以做到嗎?
我試過使用變量的visiblecells屬性,但沒有奏效。 UITableView將加載下一個單元,即使它不可見,導致它成爲可見單元的一部分。
唯一的問題是它們沒有排序...有沒有簡單的方法來排序它們,或者按照正確的順序將它們添加到數組中? – 2011-09-09 04:45:05