有关iOS中的drawRect的问题

| 事情是这样的:我有一个视图,其中包含复杂的内容,需要在更新相关数据后重新绘制。我使用多个视图来实现这一点,一个大视图更可能包含多个子视图,并且每个子视图也可能具有多个子视图。所有这些视图都覆盖了它们自己的drawRect:方法。 问题是复杂的视图占用大量内存,并且我想知道为什么drawRect:导致大量内存使用,因此我可以优化视图。 有没有人帮我?谢谢。     
已邀请:
编辑:我只是注意到您实际上并没有说您是在谈论iOS还是Mac OSX。如果您使用的是OS X,则您自己是:P供以后参考,最好的方法是使用要开发的OS或框架标记问题。 基本上,drawRect是处理视图的最繁重的方式。 iOS无法像通常那样优化子视图系统,因为它不知道您在做什么,因此在帧到达屏幕之前,需要重绘多个级别的帧缓冲区。考虑是否需要重新绘制整个视图,并认真考虑使用子视图布局系统(needsLayout:和好友)或Core Animation来完成所需的工作。 如果您确实需要drawRect :,请不要为您的视图提供任何子视图。子视图与drawRect配合不好。在所需的视图中完成所有绘图,或者使用布局子系统或CA。 最后,去年的WWDC会议在这里有很好的帮助。会话131“ iOS上的性能优化”和会话104“使用滚动视图设计应用程序”都讨论了UIView的性能。如果您丢失了会话,则这里是这些会话的链接:WWDC会话视频     

要回复问题请先登录注册