我一直在玩這個遊戲一天,並且撞到了一堵磚牆。在UIScrollView中停止和啓動視頻
我想要一個UIScrollView
,顯示一系列用戶可以滾動的視頻。設置UIScrollView
是好的,它內的每個項目(我稱之爲MenuItems)是UiViewController
的子類,它包含並管理MPMoviePlayerController
等的所有設置。
但是我發現,您只能擁有一個MPMoviePlayerController
在一個窗口,一次玩。
所以,我認爲處理這個最好的方法是讓每個菜單項訪問的方法,stopVideo
和startVideo
,我會觸發每個菜單項成爲了UiScrollView
的「焦點」(我已經成功地編碼委託所以它捕獲滾動事件並確定哪個頁面位於滾動視圖的中心)。
問題是,我無法解決如何訪問UiScrollView
中的MenuItem對象。
我在UIScrollView
委託下面的代碼來做到這一點:
- (void)scrollViewDidScroll:(UIScrollView *)sView {
//establish what page we're on
static NSInteger previousPage = 0;
MenuItem *currentMenuItem;
MenuItem *previousMenuItem;
CGFloat pageWidth = sView.frame.size.width;
float fractionalPage = sView.contentOffset.x/pageWidth;
NSInteger page = lround(fractionalPage);
if (previousPage != page) {
//firstly, get the previous page and stop the video
previousMenuItem = [sView.subviews objectAtIndex:previousPage];
previousMenuItem = [previousMenuItem nextResponder];
[previousMenuItem hideVideo];
//[previousMenuItem release];
//page has changed, get the new current page and start the video
currentMenuItem = [sView.subviews objectAtIndex:page];
currentMenuItem = [currentMenuItem nextResponder];
[currentMenuItem showVideo];
//[currentMenuItem release];
previousPage = page;
}
}
的方法showVideo
和hideVideo
是所謂的,但我得到其他錯誤(例如,我不能似乎在MenuItem
內初始化MPMoviePlayerController
而沒有SIGABRT
錯誤)。
我在想我的方法在這裏有缺陷,或者有一個更簡單的方法?所有幫助讚賞!
非常感謝。