gpt4 book ai didi

iPhone:无法在drawRect之外的屏幕上绘图?

转载 作者:行者123 更新时间:2023-12-03 19:12:43 25 4
gpt4 key购买 nike

有没有办法在 iPhone 屏幕上(在 UIWindow 中的 UIView 上)在该 View 的 drawRect() 方法之外进行绘制?如果是这样,我如何获取图形上下文?

图形指南提到了类 NSGraphicsContext,但相关章节似乎是从 Mac OS X 文档中盲目复制/粘贴的,并且 iPhone SDK 中没有此类。

编辑:我正在尝试修改触摸事件处理程序中的 View 内容 - 突出显示触摸的视觉元素。在 Windows 中,我会使用 GetDC()/ReleaseDC(),而不是 InvalidateRect()/WM_PAINT 的完整周期。尝试在这里做同样的事情。将事件(可触摸)元素排列为 subview 会带来巨大的性能损失,因为它们有大约数百个。

最佳答案

没有。绘图是drawRect:(或CALayer)的工作。即使您可以在其他地方绘制,也会有代码味道(就像在 Mac 上一样)。任何其他代码应该简单地更新您的模型状态,然后将自己设置为需要显示。

当您需要显示时,将显示代码移到其他地方并不会让它运行得更快。当您不需要显示时(因此尚未设置为需要显示),如果显示代码位于 drawRect: 中,则不会运行。

I'm trying to modify the contents of the view in a touch event handler - highlight the touched visual element. In Windows, I'd use [Windows code]. … Arranging the active (touchable) elements as subviews is a huge performance penalty, since there are ~hundred of them.

听起来核心动画可能更适合这个。

关于iPhone:无法在drawRect之外的屏幕上绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2827936/

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