РЕДАКТИРОВАТЬ: я попробовал этот код в новом проекте, и он работает, как ожидалось.
следующий код используется поверх представления opengl (с использованием cocos2d), добавленного с
[[[CCDirector sharedDirector] openGLView] addSubview: lsvc.view];
где lsvc - это мой viewcontroller с scrollview.
У меня странное поведение с моим scrollview, когда я пытаюсь программно прокрутить scrollview, все отлично работает в симуляторе (xcode4, 4.3 simul), но не работает на моем устройстве (4.3.2)
для прокрутки я делаю внутри события pageControl (при изменении значения) следующее
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * self.pageControl.currentPage;
frame.origin.y = 0;
[self.scrollView scrollRectToVisible:frame animated:YES];
и вот как я инициализирую представление прокрутки в viewdidload
self.scrollView.delegate = self;
[self.scrollView setShowsVerticalScrollIndicator:NO];
[self.scrollView setShowsHorizontalScrollIndicator:NO];
self.scrollView.pagingEnabled = YES;
self.scrollView.scrollsToTop = NO;
int page = 0;
int pageNum = 3;
[self.scrollView setContentSize:CGSizeMake(self.scrollView.frame.size.width*pageNum, self.scrollView.frame.size.height)];
for (; page < pageNum; page++) {
LevelViewController *lvlvc = [[LevelViewController alloc] init];
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
lvlvc.view.frame = frame;
[self.scrollView addSubview:lvlvc.view];
// add the viewcontroller to a saved array to keep track
[levelsController addObject:lvlvc];
[lvlvc release];
}
self.pageControl.numberOfPages = page;
Прокрутка прокрутки с помощью панорамирования на устройстве работает отлично, касание страницы. Контроль иногда перемещает прокрутку немного (например, 20 точек или меньше), а в остальное время он вообще не прокручивается. на симуляторе все работает отлично.
Может ли кто-то указать направление, на что проверить, потому что я потерян, я не знаю, почему я получаю 2 разных поведения на симуляторе и на устройстве
я также попробовал
[self.scrollView setContentOffset: CGPointMake (frame.size.width * pageNum, 0) анимированный: ДА];
и это тоже работает только на симуляторе