首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IKImageView波涛汹涌?

IKImageView波涛汹涌?
EN

Stack Overflow用户
提问于 2010-07-30 14:31:15
回答 1查看 893关注 0票数 3

我有一个IKImageView,我把CGImages (用NSImages制作的)放在上面。然而,一个普通的200 8.5 8.5/11页大约需要3秒的时间,一次显示在大约2英寸(屏幕)的矩形上。这真烦人。有办法绕道吗?

或者,是否有一种双重缓冲视图的方法?有两个IKImageViews并绘制成一个,然后显示它?

ETA:翻倍我的滚动视图(在里面有ikimageviews ),然后把它们画进去,然后解开它们,似乎没有帮助.或者,也许它有点帮助,但没有多大帮助。

我在仪器上做了一些小动作,发现很多工作似乎都是在备忘录中完成的:

代码语言:javascript
复制
  22 commpage [libSystem.B.dylib] 78.0  __memcpy
  21 ImageIO 37.0  CGImageReadGetBytesAtOffset
  20 ImageIO 37.0  CGImageReadSessionGetBytes
  19 ImageIO 37.0  myTIFFReadProc
  18 libTIFF.dylib 37.0  TIFFReadRawStrip1
  17 libTIFF.dylib 37.0  TIFFFillStrip
  16 libTIFF.dylib 37.0  _cg_TIFFReadEncodedStrip
  15 ImageIO 37.0  copyImageBlockSetTIFF
  14 ImageIO 37.0  ImageProviderCopyImageBlockSetCallback
  13 CoreGraphics 37.0  CGImageProviderCopyImageBlockSet
  12 CoreGraphics 37.0  img_blocks_create
  11 CoreGraphics 37.0  img_blocks_extent
  10 CoreGraphics 37.0  img_interpolate_extent
   9 CoreGraphics 37.0  img_data_lock
   8 CoreGraphics 37.0  CGSImageDataLock
   7 libRIP.A.dylib 37.0  ripc_AcquireImage
   6 libRIP.A.dylib 37.0  ripc_DrawImage
   5 CoreGraphics 37.0  CGContextDrawImage
   4 ImageKit 37.0  -[IKImageLayer drawInContext:]
   3 QuartzCore 37.0  tiled_layer_render(_CAImageProvider*, unsigned int, unsigned int, unsigned int, unsigned int, void*)
   2 QuartzCore 37.0  CAImageProviderThread(void*)
   1 libSystem.B.dylib 37.0  _pthread_wqthread
   0 libSystem.B.dylib 37.0  start_wqthread

我不知道这能告诉我什么.

编辑:作为记录,问题是而不是数据大小。我有一个旧版本的程序,它使用废弃的快速绘制方法调用。当我将图像放大到300%时,一个屏幕像素=一个图像像素,所以它需要使用整个图像,它仍然沿着一页又一页的方向拉链。

我被最初写这篇文章的人嘲笑了,因为他的版本在他那古老的10.3 G5上比在我最新的英特尔盒上移动得更快。速度至少是10倍。

EN

回答 1

Stack Overflow用户

发布于 2010-07-30 23:27:14

200 8.5 8.5/11页

假设这些是RGB颜色,那么每幅图像的像素数为11.22兆字节。您的应用程序使用了大量内存,绘制374万像素(不考虑颜色空间)将是缓慢的。

一侧2英寸(屏幕)

好好利用它。使用72 dpi常量和窗口的用户空间比例因子,计算出屏幕像素2英寸是多少,并将页面栅格化到这个大小。目前,这些矩形将是144个点在一个侧面,和144×144图像是非常有效的内存和绘图。

如果您有缩放设置,您将希望在这些图像更改时使缓存失效,并且不早于视图被告知绘制时重新计算每个图像。

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

https://stackoverflow.com/questions/3372450

复制
相关文章

相似问题

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