gpt4 book ai didi

iphone - 基准 UIView drawRect : method

转载 作者:太空狗 更新时间:2023-10-30 03:44:26 24 4
gpt4 key购买 nike

我正在用 Objective-C 编写一个 iPhone 应用程序,它在 View 中使用了一些自定义绘图,我想对我的代码的各种修订进行基准测试,看看有什么真正的帮助。我计划通过设置一个新的应用程序,将我的自定义绘图代码添加到 View 的 drawRect: 方法,然后在 View Controller 的 for 循环中发送 [UIView setNeedsDisplay]一些大量的时间和完成需要多长时间的时间。然而,setNeedsDisplay 调用似乎被缓存了,所以即使我在 for 循环中调用它 1000 次,drawRect: 方法也只被调用一次。此外,我尝试直接调用 drawRect: 但我需要一个图形上下文来进行一些绘制,当我不使用 setNeedsDisplay: UIGraphicsGetCurrentContext() 时,它不会给我一个上下文。

有什么建议吗?

谢谢,

凯尔

最佳答案

您可以通过执行以下操作对 View 进行基准测试:

- (NSTimeInterval)timeTakenToDrawView:(UIView *)view count:(NSInteger)count
{
CGRect bounds = [view bounds];
NSDate *startDate = [NSDate date];
UIGraphicsBeginImageContext(bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
NSInteger i = 0;
for (i = 0; i < count; i++) {
CGContextSaveGState(context);
[view drawRect:bounds];
CGContextRestoreGState(context);
}
UIGraphicsEndImageContext();
return [[NSDate date] timeIntervalSinceDate:startDate];
}

(没试过,但应该可以)

关于iphone - 基准 UIView drawRect : method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/850677/

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