0

我有高度 = 1000px 的 UITableView,我需要设置可滚动的背景。我知道如何为 tableview 设置背景图像,但在这种情况下,背景图像将不可滚动。

现在唯一的想法是如何做到这一点:1)创建具有适当高度(约1000 px)的滚动视图,并为该滚动视图设置背景图像。然后将 UITableView 的框架设置为滚动视图的边界(并禁用 UITableView 的滚动)。

但我的想法相当糟糕,因为我有很多细胞,上面有很多图像,而在我的方法中,所有细胞都会留在记忆中。

如何在tableview中实现可滚动背景的最佳方法是什么?

附言

我有未知高度的 tableview 标题(取决于服务器的响应)

4

2 回答 2

1

如果它是可重复的模式,一种方法是分割图像,重复中间部分并仅在contentOffset到达边界时显示顶部/底部contentSize。或仅将顶部/底部部分设置为第一个/最后一个单元格,并将中心(可重复部分)设置为每个其他单元格。

编辑:

正如我所说,对于可重复的模式:

示例背景图像

您裁剪用于页眉、页脚和中间的元素

示例裁剪线

示例裁剪的“组件”

当然,对于包含信息的页眉和页脚,您可能需要更大的页眉/页脚图像:

具有更大页眉和页脚的示例

获取零件并将它们分配为您cellForRowAtIndexPath:方法中的背景。您可以使用单个图像完成整个操作,而无需将裁剪的部分分离到不同的文件中,这已经在此处讨论过

于 2013-06-17T14:22:22.667 回答
0

官方文档中有一些关于如何制作“同步”滚动视图的示例代码。由于表视图是滚动视图,因此它也应该与表视图同步。所以让你的背景成为表格视图后面的滚动视图,并同步它。

关键步骤是这样的:

[[NSNotificationCenter defaultCenter] addObserver:self
                     selector:@selector(synchronizedViewContentBoundsDidChange:)
                     name:NSViewBoundsDidChangeNotification
                       object:synchronizedContentView];

然后在您的处理程序中很简单地匹配背景的内容偏移与表格视图。

于 2013-06-17T16:52:53.547 回答