我正在创建一个基于音乐的应用程序。播放列表屏幕是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来说很好,所以无论什么语言都可以。
答案 0 :(得分:3)
查看表视图继承的contentInset
属性。您必须设置底部插入,以便最底部的单元格可见。
示例:
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.tableView.frame.size.height - 88, 0);
答案 1 :(得分:0)
我有同样的问题,但问题是从后台线程更新/重新加载UITableView。以防万一其他人和我有同样的问题。
答案 2 :(得分:0)
不要在其他地方覆盖插入值,就像我的情况一样;)