我创建了一个简单UIActivityIndicatorView
的方法来通知用户特定任务的执行结束。我的实现如下:
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
spinner.center = self.imageView.center;
[self.imageView addSubview:spinner];
[spinner startAnimating];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
UIImage *filteredImage = ...some filtering...;
self.imageView.image = filteredImage;
[self.imageView setNeedsDisplay];
dispatch_async(dispatch_get_main_queue(), ^{
[spinner stopAnimating];
});
});
但是,当我运行应用程序时,旋转的轮子消失了,过了一会儿,图像更新了。您对这种延迟有何暗示?
编辑:setNeedsDisplay
和stopAnimating
指令以正确的顺序调用。但是,UIImageView
需要一段时间才能更新其内容。
先感谢您。