Я играю с этим уже целый день и натолкнулся на кирпичную стену.
Я хочу получить UIScrollView
, который показывает серию видео, по которым пользователь может пролистать.Настройка UIScrollView
в порядке, и каждый элемент в нем (я называю их MenuItems) является подклассом UiViewController
, который содержит и управляет всеми настройками MPMoviePlayerController
и т. Д.
IОднако обнаружил, что вы можете иметь только один MPMoviePlayerController
в окне, играя одновременно.
Итак, я подумал, что лучший способ справиться с этим - это иметь доступные методы для каждого MenuItem, stopVideo
и startVideo
что я бы активировал, поскольку каждый пункт меню стал «фокусом» UiScrollView
(я успешно закодировал делегат, чтобы он захватывал событие прокрутки и определял, какая страница находится в центре просмотра прокрутки).
Проблема в том, что я не могу понять, как получить доступ к объектам MenuItem в UiScrollView
.
У меня есть следующий код в делегате 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
, но я получаю другие ошибки (например, я не могу инициализировать MPMoviePlayerController
внутри MenuItem
безSIGABRT
ошибка).
Я думаю, что моя методология яздесь недостатки или что есть более простой подход?Вся помощь оценена!
Большое спасибо.