繁体   English   中英

活动指示器在iOS中不起作用?

[英]Activity indicator not working in iOS?

我要从服务器播放视频,这需要一些时间。 所以我写了一个activityIndi​​cator并开始动画。 但是直到视频播放时,活动指示器才会显示。 冷杉我隐藏活动指示器后来取消隐藏它并开始制作动画,但在视频开始播放时显示。

这是我的代码:for info indicatorView is a UIView ,我的indView is an UIIndicatorView UIView里面indView is an UIIndicatorView ; 我正在使用AV播放器播放;

请仔细阅读视图中显示的指示器视图,但是当我说开始动画但是在视频启动一段时间后问题没有出现。

  indicatorView.hidden = NO;
  [indView startAnimating];

//这里指标视图必须显示在VIEW中,但它没有显示出来;

  MediaItem *item = [allVideos objectAtIndex:indexPath.row];
  [playerModel playMyVideo:item];

//现在在5秒后,当视频准备播放时,它就会显示出来

问题是什么。 我在两个地方都使用过调度异步但没有用

我在两个地方都使用过调度异步但没有用

但是这个代码是在主线程上运行的吗? UI更新应该在主线程上执行。

dispatch_async(dispatch_get_main_queue(), ^{
    //UI code
});

改变[playerModel playMyVideo:item];

[playerModel performSelector:@selector(playMyVideo:) withObject:item afterDelay:0.0001f inModes:@[NSRunLoopCommonModes]];

只需添加一个方法,

-(void) videoPrepareToPlay {
    MediaItem *item = [allVideos objectAtIndex:indexPath.row];
    [playerModel playMyVideo:item];
}

并调用该方法,如,

   indicatorView.hidden = NO;
  [indView startAnimating];
  [self performSelector:@selector(videoPrepareToPlay) withObject:nil afterDelay:0.2];

它可能适合你..

使用performSelectorOnMainThread执行ActivityIndi​​cator代码,并使用后台线程检索视频。

其他

轻松修复:

使用此https://github.com/jdg/MBProgressHUD

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM