gpt4 book ai didi

ios - 下载图像 iOS 时的事件指示器

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:02:14 26 4
gpt4 key购买 nike

我正在下载一组图像来创建动画。我怎样才能使下载开始时显示事件指示器以及下载完成时隐藏事件指示器。

self.img = [[UIImageView alloc] initWithFrame:CGRectMake(0, 65, self.view.frame.size.width, self.view.frame.size.width-70)];



img.animationImages = [NSArray arrayWithObjects:

[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"URL"]]],

[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"URL"]]],

[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"URL"]]],

[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"URL"]]],




img.animationDuration = 20.0f;

img.animationRepeatCount = 0;

[img startAnimating];

[self.view addSubview: img];

最佳答案

您的图片正在同步下载,这意味着您正在阻塞主线程(这很糟糕)。相反,在后台线程上运行下载,这将允许主线程,并且在扩展中,您的应用程序的 UI 仍然可以运行。使用您的示例代码,这是在后台运行时的样子:

self.img = [[UIImageView alloc] initWithFrame:CGRectMake(0, 65, self.view.frame.size.width, self.view.frame.size.width-70)];
self.img.animationDuration = 20.0f;
self.img.animationRepeatCount = 0;
[self.img startAnimating];
[self.view addSubview:self.img];

// START ANIMATING YOUR ACTIVITY INDICATOR HERE

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {

NSArray *images = @[
[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"URL"]]],
[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"URL"]]],
[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"URL"]]],
[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"URL"]]],
];

dispatch_async(dispatch_get_main_queue(), ^(void) {

// STOP ANIMATING YOUR ACTIVITY INDICATOR HERE

[self.img setAnimationImages:images];

});

});

关于ios - 下载图像 iOS 时的事件指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28509926/

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