gpt4 book ai didi

ios - setNeedsDisplay 已在主队列上提交但未被调用

转载 作者:行者123 更新时间:2023-11-29 03:32:08 24 4
gpt4 key购买 nike

下面的方法是在非主线程上调用的,具体来说,是在录音音频队列回调中

- (void)myMethod
{
//...
dispatch_async(dispatch_get_main_queue(), ^{
[myGraphView setNeedsDisplayInRect:CGRectMake(a, b, c, d)];
NSLog(@"Block called");
});
//...
}

其中 myGraphView 是自定义 UIView 对象。据我所知,应该在主线程上调用 setNeedsDisplayInRect: ,这就是为什么我有 dispatch_async... 。现在的问题是我为 myGraph 实现的方法 - (void)drawRect:(CGRect)rect 从未被调用,即使 block 中的 NSLog 已被调用多次。

最佳答案

这里有几种可能性。

来自类引用:

Note: If your view is backed by a CAEAGLLayer object, this method has no effect. It is intended for use only with views that use native drawing technologies (such as UIKit and Core Graphics) to render their content.

另一个选项(可能是本例中的原因)与实际几何形状有关。如果提供的矩形无效或不在屏幕上,则调用不执行任何操作。我建议您验证矩形的计算是否正确。

关于ios - setNeedsDisplay 已在主队列上提交但未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613863/

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