Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何使“-[MPMoviePlayerController backgroundView]”立即显示?_Iphone_Uikit_Mpmovieplayercontroller - Fatal编程技术网

Iphone 如何使“-[MPMoviePlayerController backgroundView]”立即显示?

Iphone 如何使“-[MPMoviePlayerController backgroundView]”立即显示?,iphone,uikit,mpmovieplayercontroller,Iphone,Uikit,Mpmovieplayercontroller,当前我的-[MPMoviePlayerController backgroundView]在电影加载足够的内容之前不会显示。因此,我放在那里的UIActivityIndicatorView不会立即出现。这让我发疯。找到的唯一解决方案是将重复的指示器视图放置在背景视图和-[MPMoviePlayerController视图]之间的某个位置。但这看起来并不正常,而且肯定是一种视图层次结构黑客,不能保证正常工作。如果背景视图立即显示,所有视图都将神奇地工作 如何在加载电影之前立即创建背景视图?我不确定

当前我的
-[MPMoviePlayerController backgroundView]
在电影加载足够的内容之前不会显示。因此,我放在那里的
UIActivityIndicatorView
不会立即出现。这让我发疯。找到的唯一解决方案是将重复的指示器视图放置在背景视图和
-[MPMoviePlayerController视图]
之间的某个位置。但这看起来并不正常,而且肯定是一种视图层次结构黑客,不能保证正常工作。如果背景视图立即显示,所有视图都将神奇地工作


如何在加载电影之前立即创建背景视图?

我不确定,但可能会对您有所帮助

不要使用背景视图,而是使用moviecontroller本身的视图

以下步骤(假设您的
mpmoviecontroller
实例被调用
moviePlayerController
,您的
UIActivityIndicatorView
实例被调用
activityIndicatorView

  • 将UIActivityIndicatorView添加到MPMoviePlayerController视图的顶部(例如,
    [moviePlayerController.view addSubview:activityIndixatorView];

  • 开始设置活动指示器的动画

  • 注册MPMoviePlayerLoadStateDidChangeNotification

  • 在上述通知的处理程序中,注意
    moviePlayerController.loadState&MPMovieLoadStatePlayable==MPMovieLoadStatePlayable

  • 如果符合上述条件,则隐藏活动指示器


不幸的是,
MPMoviePlayerLoadStateDidChangeNotification
通知发出得太早或太迟,因此活动指示器将在视频显示之前消失。对于慢速连接,时间间隔太长。所以我不能用这种方式:(这很奇怪…但是你可以用MPMoviePlayerPlayerBackstateDidChange来代替或另外使用MPMoviePlayerLoadStateDidChangeNotification来隐藏活动指示器。正如我在@Till回答的评论中提到的,解决方案无法解决这个问题。。。