Ios 如何通过延迟/动态加载子视图实现自定义UIView,类似于UITableView

Ios 如何通过延迟/动态加载子视图实现自定义UIView,类似于UITableView,ios,uitableview,uiview,lazy-loading,Ios,Uitableview,Uiview,Lazy Loading,所以,我现在有一个GridView类,它本质上就是它听起来的样子。它是UIView的一个子类,它有一个暂存区域,其中有一组子视图以类似网格的方式放置。目前,我将GridView放在nib中的UIScrollView中。加载GridView时,它必须同时加载所有子视图,即使是不可见的子视图 例如,如果我有一个5列500行的网格,它将一次加载所有2500个视图,正如您所想象的,这需要很长时间。我想实现它,以便它只加载可视的视图,并在用户滚动时加载新视图。这与UITableView加载单元格的方式类似

所以,我现在有一个GridView类,它本质上就是它听起来的样子。它是UIView的一个子类,它有一个暂存区域,其中有一组子视图以类似网格的方式放置。目前,我将GridView放在nib中的UIScrollView中。加载GridView时,它必须同时加载所有子视图,即使是不可见的子视图

例如,如果我有一个5列500行的网格,它将一次加载所有2500个视图,正如您所想象的,这需要很长时间。我想实现它,以便它只加载可视的视图,并在用户滚动时加载新视图。这与UITableView加载单元格的方式类似

我假设它将遵循与UITableView相同的模式,但我不太确定如何开始。有人有什么建议吗


提前感谢

您知道每个网格单元的大小。我假设您正在实现
UIScrollViewDelegate
方法,因此在发生滚动时可以收到消息。因此,一旦您收到
-(void)scrollViewDidScroll:(UIScrollView*)
消息,计算可见单元格,并为进入视图的单元格加载视图

更好的是,就像在
UITableView
中一样,回收单元格视图。当单元格离开视图(顶部或底部)时,将离开视图的单元格用于进入视图的新单元格

查看
UITableView
类的IVAR和方法,并考虑模仿该行为和实现