我有UITableView,身高= 1000px,我需要设置可滚动的背景。 我知道如何为tableview设置背景图像,但在这种情况下,背景图像将无法滚动。
现在唯一的想法是: 1)创建具有适当高度(约1000像素)的滚动视图,并为该滚动视图设置背景图像。然后将UITableView的框架设置为滚动视图的边界(并禁用UITableView的滚动)。
但是我的想法相当糟糕,因为我有许多细胞,上面有许多图像,在我的方法中,所有的细胞都会留在记忆中。
如何在tableview中实现可滚动背景的最佳方法是什么?
P.S。
我有未知高度的tableview标头(取决于服务器的响应)
答案 0 :(得分:1)
如果它是一个可重复的模式,一种方法是分割图像,重复中间部分并仅在contentOffset
到达contentSize
的边界时显示顶部/底部。或者仅为第一个/最后一个单元格设置顶部/底部部分,为每个单元格设置中心(可重复部分)。
编辑:
正如我所说,为了一个可重复的模式:
裁剪用于页眉,页脚和中间
的元素
当然,对于标题&有信息的页脚你可能需要更大的页眉/页脚图像:
获取部件并在cellForRowAtIndexPath:
方法中将其指定为背景。您可以使用单个图像完成整个操作,而不会将不同文件中的裁剪部分分开,即already discussed here。
答案 1 :(得分:0)
官方文档中有一些关于如何制作" synchronized"的示例代码。滚动视图。由于表视图是滚动视图,因此它也应该与表视图同步。因此,将背景设置为表视图后面的滚动视图,并将其同步。
关键步骤是:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(synchronizedViewContentBoundsDidChange:)
name:NSViewBoundsDidChangeNotification
object:synchronizedContentView];
然后在处理程序中简单地匹配背景与表格视图的内容偏移量。