2011-03-31 56 views
1

目前我的-[MPMoviePlayerController backgroundView]不會出現,直到電影加載足夠。所以我放在那裏的UIActivityIndicatorView沒有立即出現。這讓我發瘋。唯一的解決方案是在background-view和-[MPMoviePlayerController view]之間放置重複的指示器視圖。但是這看起來並不規律,而且絕對是一種視圖層次結構,它不保證能夠正常工作。如果立即顯示背景視圖,所有這些都會神奇地起作用。如何讓` - [MPMoviePlayerController backgroundView]`立即顯示?

如何在電影加載之前立即製作背景視圖?

回答

2

不要使用backgroundView但moviecontroller本身的看法...

下列步驟(假設你MPMovieControllerPlayer實例被稱爲moviePlayerController和你UIActivityIndicatorView實例稱爲activityIndicatorView

  • 添加您的UIActivityIndi​​catorView上的MPMoviePlayerController視圖的頂部(如[moviePlayerController.view addSubview:activityIndixatorView];

  • 開始動畫活動指示燈

  • 註冊MPMoviePlayerLoadStateDidChangeNotification

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

  • 如果上述條件匹配,隱藏您的活動指標

+0

不幸的是,'MPMoviePlayerLoadStateDidChangeNotification'通知提前或過晚,因此活動指示器將在視頻顯示前消失。對於慢速連接,時間間隔太長。所以我不能使用這種方式:( – Eonil 2011-03-31 13:52:51

+0

這很奇怪...但您可以使用MPMoviePlayerPlaybackStateDidChange來代替或另外爲MPMoviePlayerLoadStateDidChangeNotification隱藏該活動指示器。 – Till 2011-03-31 14:09:34