UITableView内容的背景图片

时间:2013-06-17 14:20:07

标签: iphone ios uitableview uiscrollview

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

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

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

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

P.S。

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

2 个答案:

答案 0 :(得分:1)

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

编辑:

正如我所说,为了一个可重复的模式:

Sample background image

裁剪用于页眉,页脚和中间

的元素

Sample cropping lines

Sample cropped 'components'

当然,对于标题&有信息的页脚你可能需要更大的页眉/页脚图像:

Sample with bigger header & footer

获取部件并在cellForRowAtIndexPath:方法中将其指定为背景。您可以使用单个图像完成整个操作,而不会将不同文件中的裁剪部分分开,即already discussed here

答案 1 :(得分:0)

官方文档中有一些关于如何制作" synchronized"的示例代码。滚动视图。由于表视图是滚动视图,因此它也应该与表视图同步。因此,将背景设置为表视图后面的滚动视图,并将其同步。

关键步骤是:

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

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