首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone:石英的优化绘图

问iPhone:石英的优化绘图
EN

Stack Overflow用户
提问于 2009-11-20 16:21:58
回答 2查看 3.3K关注 0票数 1

我已经创建了一个CG上下文,它宽800像素,高度1200像素。我已经在这个已经被转换的上下文上创建了CGLayer (缩放、翻译和旋转)。因此,在某种程度上,由于CGLayer比上下文大,并且已经被翻译、旋转等,所以并不是CGLayer的所有部分都在上下文中。见下一张图片:

层和上下文

从图片中可以看到,图层的某些部分落在上下文区域之外。当我呈现最后的作文时

代码语言:javascript
复制
CGContextDrawLayerInRect(context, superRect, objectLayer);

它将呈现整个层,包括上下文之外的那些不必要的部分。

我的问题是:如果我能让它只绘制上下文中的相关部分,我就可以使它快速呈现并节省内存。

有什么办法吗?

注意:层包含透明度.

请不要给出不涉及CGLayers的解决方案。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-21 01:52:25

你能用CATiledLayer吗?这应该是懒惰加载在广场阿拉-谷歌地图..。

代码语言:javascript
复制
+(Class)layerClass
{
return [CATiledLayer class];
}


-(id)init {
   CATiledLayer *tiledLayer = (CATiledLayer *) self.layer;
   tiledLayer.tileSize = CGSize(x,x);
   tiledLayer.levelsOfDetail = y;
   tiledLayer.levelsOfDetailBias = z;
}
票数 0
EN

Stack Overflow用户

发布于 2009-12-21 20:37:48

您可以使用CGContextClip/-ToMask/-ToRect裁剪上下文。

但我认为,简单地将像素“转储”到上下文中比计算裁剪界和“绘制更少”要便宜/快。

多余的绘图(通常)不会占用额外的内存.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1771604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档