为了澄清这个问题的目的:我知道如何使用子视图和使用drawRect创建复杂的视图.我试图完全理解何时使用一个而不是另一个.
我也明白,提前优化这一点是没有意义的,并且在进行任何分析之前做一些更难的方法.考虑到我对这两种方法感到满意,现在真的想要更深刻的理解.
我的很多困惑来自学习如何使表格视图滚动性能真正流畅和快速.当然,这种方法的原始来源是来自twitter for iPhone(以前的tweetie)的作者.基本上它说,为了使表格滚动黄油光滑,秘诀是不使用子视图,而是在一个自定义uiview中完成所有绘图.从本质上讲,使用大量子视图似乎会减慢渲染速度,因为它们有很多开销,并且经常在父视图上重新合成.
公平地说,这是在3GS是一个非常新的品牌时写的,iDevices从那以后变得更快.不过这种方法是经常 建议在interwebs和其他高性能表.事实上,它是Apple的表示例代码中的一种建议方法,已经在几个WWDC视频(iOS开发人员的实用绘图)和许多iOS 编程书籍中提出过.
甚至还有很棒的工具来设计图形并为它们生成Core Graphics代码.
所以起初我会相信"核心图形存在的原因.它很快!"
但是当我认为我得到"尽可能支持核心图形"的想法时,我开始看到drawRect经常导致应用程序响应能力差,内存非常昂贵,并且真正对CPU征税.基本上,我应该" 避免覆盖drawRect "(WWDC 2012 iOS App性能:图形和动画)
所以我想,就像一切一样,它很复杂.也许你可以帮助自己和其他人了解使用drawRect的时间和原因?
我看到一些使用Core Graphics的明显情况:
我看到避免Core Graphics的情况:
所以赐予你的知识.您在什么情况下可以使用drawRect/Core Graphics(也可以通过子视图完成)?哪些因素会导致您做出这个决定?如何/为什么在一个自定义视图中绘制建议用于黄油平滑表格单元格滚动,但Apple建议drawRect反对性能原因一般?那么简单的背景图像(你何时使用CG创建它们与使用可调整大小的png图像)?
制作有价值的应用程序可能不需要深入理解这个主题,但我不喜欢在不能解释原因的情况下在技术之间进行选择.我的大脑生我的气.
感谢大家的信息.这里有一些澄清问题:
我正在开发一个需要一些图像处理的项目,我也问了一些关于它的问题,我得到了非常好的解决方案,这是通过选择不同的属性在iOS中创建全新图像的链接
但现在我想更详细地了解这一点,我很困惑,我应该从哪里开始学习石英2d或核心动画或核心图形或核心图像
苹果文件说关于石英2d那个
Quartz 2D API是Core Graphics框架的一部分,因此您可能会看到Quartz被称为Core Graphics,或简称为CG.
和苹果文档说关于核心图形
Core Graphics框架是基于C语言的API,它基于Quartz高级绘图引擎.
这令人困惑,他们彼此之间的关系......
现在,核心动画包含绘制图像时也需要的坐标,边界,框架等所有概念
和核心图像在ios 5中引入
我应该从哪里开始学习,或者我从哪个序列开始学习所有这些.
我正在使用coregraphics开发iphone游戏.但速度很慢.我无法玩我的游戏..所以,我google了很多..在谷歌搜索期间,我找到了下面的.
CoreGraphics,CoreAnimation,OpenGL ES,CALayer,Quartz 2D
他们之间我很困惑.有人告诉我coregraphics没有使用GPU.有人告诉我它正在使用GPU.coregraphics是最好的,或者openGL最好,calayer更好.^^ ;;;; 它们之间有什么不同,哪一个使用GPU?制作游戏最适合哪一个.我有很多画像.
请让我知道.....提前谢谢.