2011-10-12 102 views
0

我正在創建一個基於音樂的應用程序。播放列表屏幕是一個UITableView。它有3個部分:上一曲目,正在播放,下一曲目。 他們是爲了如下:UITableView - 保持最底部的單元格滾動到頂部?

-- PREVIOUS TRACKS SECTION -- 
    Track Z 
    Track Y 
    Track X 
-- NOW PLAYING SECTION -- 
    Track A 
-- NEXT TRACKS -- 
    Track B 
    Track C 
    Track D 

我總是希望「正在播放」部分滾動以表視圖的頂部。 這是不是一個問題,如果: A)沒有項目在上一個軌道部分或 B)下一個軌道部分有足夠的軌道超越UITableView的底部。但是,如果在前軌道部分有10個軌道,在Currently Playing部分有2個軌道,在下一個軌道部分有2個軌道,那麼當我告訴桌面視圖滾動時,現在正在播放的部分在視圖頂部,它會彈回,因此它從視圖底部(2'Next Track'項目加上當前播放)有3個項目。

換句話說,看看你的iPod庫或iPhone上的任何TableView。我試圖達到的目標是將列表中的最後一首曲目滾動到屏幕頂部,並在下面留下空白空白。

是否有任何方法告訴TableView不要在這種情況下回彈到位? 我曾嘗試在那裏玩一個很大的高度單元格,但是它的hacky會在重新安排TableView中的單元格時導致問題。

從技術上講,這是Monotouch,但在Objective C中很好,所以任何語言都可以。

+0

您可以添加第4節定製的空白視圖,併爲它設定爲0行=) – Nekto

回答

2

看看錶視圖繼承的contentInset屬性。您將不得不設置底部插入,以便最底部的單元格可見。

例子:

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.tableView.frame.size.height - 88, 0); 
+0

謝謝,那是完美的。 – Dermot

+0

非常有用。謝謝 –

+0

什麼是價值88? – GeneCode

0

我有同樣的問題,但問題是在更新/重裝從後臺線程的UITableView。以防萬一別人和我有同樣的問題。

+0

看起來像一個低質量的答案,應該包括更多的細節來支持你的答案! –

0

請勿覆蓋內移數值別的地方,因爲在我的情況;)