2012-07-18 32 views
0

我一直在寻找一吨,似乎无法找到答案...IOS - 一个单一的静态头,改变为您滚动

我有一个的tableView其滚动所有月份中的每一天。我有一个titleForHeaderInSection:和viewForHeaderInSection:它在每个月的部分顶部显示一个部分标题,在顶部适当地替换为cool。但是我怎么能创建一个标题titleLabel在我滚动时更改为正确的月份(换句话说,没有多个节标题,只有一个)?

我不能说这是否应该设置为“一个(大)部分的头部改变”或“一个headerView改变”,或任何...任何示例将不胜感激。先谢谢你。

回答

1

你可以创建一个静态视图,并将其放在你的tableView之上。然后,您可以使用visibleCells属性来确定哪些单元格可见。当这些单元格更改为新节的单元格时,可以更新UITableView之上的静态视图。

一旦你是UITableViewdelegate,那么它也就是它所建造的UIScrollViewdelegate

所以你可以赶上scrollViewDidScroll:代表电话,并在那里更新你的标题。

所以打好出来:

1)创建一个头查看您UITableView

2.以上)成为UITableView

3. delegate)实施scrollViewDidScroll:法检测滚动

4.)在scrollViewDidScroll方法中,使用UITableViewvisibleCells属性确定显示哪些单元格,以及适当地更新您的标题视图。

我从来没有做过这样的事情,但我不明白为什么它不起作用。

编辑:正如胡斯克杰夫指出的那样。使用indexPathsForVisibleRows来确定屏幕上的内容可能更容易。然后,您可以非常轻松地使用它来确定显示哪个部分/部分。谢谢杰夫!

+2

贾斯汀打了我一分钟左右,几乎说了我要说的一切。我唯一要补充的是你可以使用'indexPathsForVisibleRows'而不是'visibleCells' - 它可以为你节省一步到底层数据。 – 2012-07-18 18:33:14

+0

优秀的加法Husker,这将是一个更容易,特别是如果他是逐节更改标题。 – 2012-07-18 18:55:31