[英]Activity indicator not working in iOS?
我要从服务器播放视频,这需要一些时间。 所以我写了一个activityIndicator并开始动画。 但是直到视频播放时,活动指示器才会显示。 冷杉我隐藏活动指示器后来取消隐藏它并开始制作动画,但在视频开始播放时显示。
这是我的代码: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执行ActivityIndicator代码,并使用后台线程检索视频。
其他
轻松修复:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.