我想实现像Pinterest
中的网格视图我考虑过实现3个表视图。但是我无法将它们很好地滚动起来。当我实现scrollViewDidScroll
并为表视图设置contentOffset
以及scrollView时,滚动变得缓慢且无法使用。
我做的另一个实现是在scrollViewDidScroll
中加载并调用viewDraw函数的一组图像。 ViewDraw
函数只绘制必要的图像,并从已经绘制但不可见的内存中删除其余图像。
这也使得ScrollView滚动速度变慢。另一个问题是在绘制图像之前有白色(背景色)色块。
实现此网格视图的最佳方法是什么?
答案 0 :(得分:3)
解决方案1 (我不知道这是否有效,我不太喜欢)
如何并排放置3个垂直表视图,但将任何触摸事件从任何tableview转发到其他视图。我知道您在尝试同步tableviews时遇到了性能问题,但是在事件级别工作可能会更好。也许
解决方案2
使用UIScrollView(当然是为了滚动目的)。出于性能和内存的原因,您还需要实现按需加载机制,这样您就不会一次加载所有图像。
为此,我将创建一个处理垂直图像列表的类CustomImageStrip。此类与scrollview一起使用,并使用contentOffset
来决定何时从条带加载/卸载图像。
通过具有3个独立的图像条带类,图像可以是任何尺寸,并且不需要对齐。但是,由于它们都属于同一个UIScrollView,因此滚动操作将同时完成。