所以,我目前有一个GridView类,它本质上就是这样。它是UIView的一个子类,它有一个暂存区域,其中有一堆子视图以类似网格的方式放置。目前我将GridView放入nib中的UIScrollView。加载GridView时,它必须一次加载所有子视图,甚至是那些不可见的子视图。
例如,如果我有一个包含5列和500行的网格,它将同时加载所有2500个视图,如您所想,这需要很长时间。我想实现它,以便它只加载可见的视图,并在用户滚动时加载新视图。这类似于UITableView加载其单元格的方式。
我认为它将遵循与UITableView相同的模式,但我不太清楚如何开始。任何人有任何指针/提示?
提前致谢
答案 0 :(得分:1)
您知道每个网格单元的大小。我假设您正在实现UIScrollViewDelegate
方法,因此您可以在滚动时收到消息。因此,一旦收到-(void)scrollViewDidScroll:(UIScrollView *)
消息,计算可见单元格,并加载视图中的单元格。
更好的是,就像在UITableView
中一样,回收您的单元格视图。当细胞离开视野(顶部或底部)时,使用视野外的细胞进入视野。
查看UITableView
类的ivars和方法,并考虑模仿该行为和实现。