iOS上的Pinterest Gridview实现

时间:2012-02-13 11:57:35

标签: iphone ios uitableview uiscrollview pinterest

我想实现像Pinterest

中的网格视图

我考虑过实现3个表视图。但是我无法将它们很好地滚动起来。当我实现scrollViewDidScroll并为表视图设置contentOffset以及scrollView时,滚动变得缓慢且无法使用。

我做的另一个实现是在scrollViewDidScroll中加载并调用viewDraw函数的一组图像。 ViewDraw函数只绘制必要的图像,并从已经绘制但不可见的内存中删除其余图像。 这也使得ScrollView滚动速度变慢。另一个问题是在绘制图像之前有白色(背景色)色块。

实现此网格视图的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

解决方案1 ​​(我不知道这是否有效,我不太喜欢)

如何并排放置3个垂直表视图,但将任何触摸事件从任何tableview转发到其他视图。我知道您在尝试同步tableviews时遇到了性能问题,但是在事件级别工作可能会更好。也许

解决方案2

使用UIScrollView(当然是为了滚动目的)。出于性能和内存的原因,您还需要实现按需加载机制,这样您就不会一次加载所有图像。

为此,我将创建一个处理垂直图像列表的类CustomImageStrip。此类与scrollview一起使用,并使用contentOffset来决定何时从条带加载/卸载图像。

通过具有3个独立的图像条带类,图像可以是任何尺寸,并且不需要对齐。但是,由于它们都属于同一个UIScrollView,因此滚动操作将同时完成。