gpt4 book ai didi

ios - 如果我经常调用 setneedsdisplay,那么调用 drawrect 的频率是多少?这是为什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:57:47 25 4
gpt4 key购买 nike

在我的例子中,drawRect: 不会在每次调用 setNeedsDisplay 后立即调用。例如,我认为以下代码与我的情况相同。

for (int i = 0; i < 100; ++i)
{
[self setNeedsDisplay];
}

最佳答案

来自documentation :

When the actual content of your view changes, it is your responsibility to notify the system that your view needs to be redrawn. You do this by calling your view’s setNeedsDisplay or setNeedsDisplayInRect: method of the view. These methods let the system know that it should update the view during the next drawing cycle. Because it waits until the next drawing cycle to update the view, you can call these methods on multiple views to update them at the same time.

drawRect: 只会在下一帧绘制时被及时调用,这意味着您的整个循环将导致 drawRect: 仅在下一帧被调用一次渲染迭代。这节省了不必要的计算,因为它避免了绘制永远不会显示在屏幕上的帧。它还允许您在代码的不同位置进行多项更改,每次都通知 View 需要刷新,而不会降低性能,因为调用 setNeedsDisplay 只告诉绘图系统重绘下一帧需要;它不会强制立即呈现可能永远不会显示在屏幕上的帧。

关于ios - 如果我经常调用 setneedsdisplay,那么调用 drawrect 的频率是多少?这是为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30046574/

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