gpt4 book ai didi

uiscrollview - drawRect 使 UIScrollView 中的滚动变慢

转载 作者:行者123 更新时间:2023-12-04 06:26:11 26 4
gpt4 key购买 nike

我有一个 UIScrollView,里面有一个(自定义)UIView。

在我的 scrollViewDidScroll 方法中,我正在调用

[myCustomView setNeedsDisplay];

如果我在自定义 UIView 中实现 drawRect: 方法,这会使滚动明显变慢 - 即使它完全为空。

一旦我删除了 drawRect: 方法,它又变得平滑了。

我完全不知道,为什么……你们中的任何人?

最佳答案

我也讨厌 drawrect

“这是因为 Cocoa 中硬件加速动画的工作方式。

如果您没有自定义 drawRect 方法,系统会将您的 View 的像素缓存在视频内存中。当它需要重绘它们时,它只是将像素闪烁到屏幕上。

如果您有自定义的 drawRect 方法,则系统必须调用您的 drawRect 方法来渲染主内存中的像素,然后将这些像素复制到视频内存中,然后为每一帧将像素绘制到屏幕上。文档说如果可以的话避免使用 drawRect。

我认为主内存和视频内存在大多数/所有 iOS 设备上都是共享的,但是当您为 View 实现 drawRect 方法时,系统还有很多工作要做。

使用 OpenGL 层并通过 OpenGL 调用渲染到该层可能会更好,因为 OpenGL 直接与显示硬件对话。”

该报价的链接:http://www.iphonedevsdk.com/forum/iphone-sdk-development/80637-drawrect-makes-scrolling-slow-uiscrollview.html

关于uiscrollview - drawRect 使 UIScrollView 中的滚动变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com