活动指标不适用于iOS?
我必须播放来自服务器的视频,它需要一些时间。所以我写了一个activityIndicator并开始动画。但活动指示器在视频播放前不显示。冷杉我隐藏的活动指标后来不隐藏它,并开始动画,但它显示视频开始播放时。活动指标不适用于iOS?
这里是我的代码: 的信息indicatorView is a UIView
和我indView is an UIIndicatorView
里面的UIView;我正在使用AV Player播放;
请阅读显然,指标视图显示在视图中,但问题没有显示出来时,我说开始动画,但一段时间后视频开始。
indicatorView.hidden = NO;
[indView startAnimating];
//在这里,在视图中显示指示器视图必须,但它没有显示出来;
MediaItem *item = [allVideos objectAtIndex:indexPath.row];
[playerModel playMyVideo:item];
//现在经过5秒时,这里是视频准备播放它显示了
有什么问题。 我用在这两个地方dispach非同步,但没有用
只需添加一个方法类似,
-(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];
它可能适合你..
哈哈哈1秒击败你到底:d http://*.com/a/33209052/2057171 –
你应该使用'inModes:@ [NSRunLoopCommonModes]'喜欢我的参数在我的代码做否则某些UI元素(例如UIScrollView)在您的3秒延迟期间不会变得棘手。另外为什么使用3秒的延迟而不是0.0001秒的延迟? –
是的,我们可以在您的答案中提及您。 – jigs
我用dispach非同步在两个地方,但没有用
但就是这个代码被主线程上运行? UI更新应该在主线程上执行。
dispatch_async(dispatch_get_main_queue(), ^{
//UI code
});
尝试过,但无法正常工作... Gui派发是当玩家完成执行时得到了它的时间 –
变化[playerModel playMyVideo:item];
到
[playerModel performSelector:@selector(playMyVideo:) withObject:item afterDelay:0.0001f inModes:@[NSRunLoopCommonModes]];
@SUDHAKARRAYAPUDI是什么?除了我先发布之外,这与接受的答案相同。这是如何,但有时不工作,所有的时间,但你接受了我的后贴有相同的代码的答案,但神奇地运行所有的时间? –
嘿,我真的不知道。但不知何故,他的代码工作正常,但你的工作有时不是所有的时间......可能是因为他添加了额外的方法。但是我已经投票了,因为你的贡献。你投下了我的问题......我没关系。但由于 –
@SUDHAKARRAYAPUDI添加一个方法名称完全不影响的代码。如果“有时但不是所有的工作时间”是一个有效的声明,我真的无法相信它是,但如果是,那么你需要做你的应用程序更多的测试,因为它会与他的代码再次失败为好,因为它等同于我的... –
使用performSelectorOnMainThread执行ActivityIndicator代码并使用后台线程检索视频。
ELSE
简易修复:
我不愿意添加任何第三方,但我还是谢谢你 –
@SUDHAKARRAYAPUDI为什么?????????????????????????????? –
嘿阿尔伯特普通人。因为我的客户不想要任何第三方 –
请更改指标视图的颜色。可能是白色的,所以你不能识别它。 –
您正在使用哪个播放器播放视频? – abhi1992
AVPlayer正在使用 –