UITableView - 保持最底部的单元格滚动到顶部?

时间:2011-10-12 08:50:18

标签: iphone objective-c uitableview xamarin.ios

我正在创建一个基于音乐的应用程序。播放列表屏幕是UITableView。它有3个部分:上一曲目,正在播放,下一曲目。 它们按如下顺序排列:

-- 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首曲目,其中一首在“当前正在播放”和“在下一曲目”部分中,那么当我告诉表视图滚动时,“正在播放”部分位于顶部视图中,它只是弹回,所以它是视图底部的3个项目(2个“下一曲目”项目加上当前播放)。

换句话说,看看你的iPod库或iPhone上的任何TableView。我试图实现的是将列表中的最后一首曲目滚动到屏幕顶部,并在下面留下空白空白。

有没有办法告诉TableView在这种情况下不会重新回到原位? 我试过在那里玩一个很大的高度单元格,但它的hacky并在TableView中重新排列单元格时会出现问题。

从技术上讲,这是Monotouch,但是对于Objective C来说很好,所以无论什么语言都可以。

3 个答案:

答案 0 :(得分:3)

查看表视图继承的contentInset属性。您必须设置底部插入,以便最底部的单元格可见。

示例:

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

答案 1 :(得分:0)

我有同样的问题,但问题是从后台线程更新/重新加载UITableView。以防万一其他人和我有同样的问题。

答案 2 :(得分:0)

不要在其他地方覆盖插入值,就像我的情况一样;)