代码执行顺序?
Code Execution Order?
我正在使用下面的代码从视频中抓取一个农场用作缩略图。这是按预期工作的,但是我的 MBProgressHUD 仅在图像抓取完成后显示,并在一秒钟内在屏幕上闪烁。我已经以相同的方式多次使用 MBPRogressHUD,在代码的开头显示它,并在其他所有操作完成后隐藏,这一直有效,但这次它就像代码 运行 乱码?任何帮助将不胜感激。
这是我按下按钮时调用的方法。
- (IBAction)grabImage:(id)sender {
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeIndeterminate;
hud.labelText = @"Grabing Thumbnail";
[hud show:YES];
self.imageholder.image = [self grabImageMethod];
[hud hide:YES];
}
这是用in调用的grab方法
-(UIImage*)grabImageMethod{
NSURL *vidURL = [NSURL URLWithString:@"http://myserver.com/myfile.mp4"];
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:vidURL options:nil];
AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset];
NSError *err = NULL;
CMTime time = CMTimeMake(1, 60);
CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err];
NSLog(@"err==%@, imageRef==%@", err, imgRef);
return [[UIImage alloc] initWithCGImage:imgRef];
}
收到 nielsbot 的评论后,我去替换了
[hud show:YES];
self.imageholder.image = [self grabImageMethod];
[hud hide:YES];
和
[hud showAnimated:YES whileExecutingBlock:^{
self.imageholder.image = [self grabImageMethod];
}];
现在可以完美运行了。
我正在使用下面的代码从视频中抓取一个农场用作缩略图。这是按预期工作的,但是我的 MBProgressHUD 仅在图像抓取完成后显示,并在一秒钟内在屏幕上闪烁。我已经以相同的方式多次使用 MBPRogressHUD,在代码的开头显示它,并在其他所有操作完成后隐藏,这一直有效,但这次它就像代码 运行 乱码?任何帮助将不胜感激。
这是我按下按钮时调用的方法。
- (IBAction)grabImage:(id)sender {
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeIndeterminate;
hud.labelText = @"Grabing Thumbnail";
[hud show:YES];
self.imageholder.image = [self grabImageMethod];
[hud hide:YES];
}
这是用in调用的grab方法
-(UIImage*)grabImageMethod{
NSURL *vidURL = [NSURL URLWithString:@"http://myserver.com/myfile.mp4"];
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:vidURL options:nil];
AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset];
NSError *err = NULL;
CMTime time = CMTimeMake(1, 60);
CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err];
NSLog(@"err==%@, imageRef==%@", err, imgRef);
return [[UIImage alloc] initWithCGImage:imgRef];
}
收到 nielsbot 的评论后,我去替换了
[hud show:YES];
self.imageholder.image = [self grabImageMethod];
[hud hide:YES];
和
[hud showAnimated:YES whileExecutingBlock:^{
self.imageholder.image = [self grabImageMethod];
}];
现在可以完美运行了。