Iphone UIScrollView或自定义图形

Iphone UIScrollView或自定义图形,iphone,ios,performance,uiscrollview,Iphone,Ios,Performance,Uiscrollview,在我当前的项目中,我面临以下问题:我想实现如下内容: 资料来源: 由于我必须在一周内为40个或更多的站点绘制一个EPG,我的问题是:我应该用许多子视图(表示节目)填充一个UIScrollView,还是使用Quartz2D绘制一个大UIView,然后将其添加为UIScrollView的单个子视图,对性能有好处 希望你能跟着我, 提前感谢, Christian我不确定我是否理解,但是您可以创建一个视图队列,在其中可以重用子视图,如UITableView: 每当您需要一个UIView,您都会要求队列

在我当前的项目中,我面临以下问题:我想实现如下内容:

资料来源:

由于我必须在一周内为40个或更多的站点绘制一个EPG,我的问题是:我应该用许多子视图(表示节目)填充一个UIScrollView,还是使用Quartz2D绘制一个大UIView,然后将其添加为UIScrollView的单个子视图,对性能有好处

希望你能跟着我, 提前感谢,


Christian

我不确定我是否理解,但是您可以创建一个视图队列,在其中可以重用子视图,如UITableView

每当您需要一个UIView,您都会要求队列(NSMutableArray)获取现有视图。如果队列为空,则创建一个新的UIView,如果它已包含视图,则(重新)使用存储在队列中的现有UIView

仅当UIView应可见时,才将其添加到屏幕(UIView从队列检索),如果其不再可见,则将其从超级视图中删除并添加到队列

然后可以使用UIScrollView显示子视图。如果要滚动,只需设置UIScrollView大小,使其变大变小即可


希望有帮助

谢谢你的快速回复。但是有了这个队列,我的内存中仍然有所有的视图,不是吗?你会节省很多内存;检查仪器,如果您将它们存储在可变数组中,而不是将它们全部绘制在屏幕上。此外,没有必要绘制屏幕边界之外的对象。只要确保在屏幕边界之外时将UIView从superview中删除即可