我的UIScrollView存在问题,希望你们中的一些人能以某种方式帮助我。
我解释你......
在我的ViewController的中心,我有一个ScrollView显示3个外部UIViewController的内容。通过经典的for循环,我能够正确显示内容,到目前为止我还没有发现任何问题......
当我在视图控制器之间执行滚动(水平)或者每个视图控制器的内容移动时,问题就出现了,它不会像最初设置的那样保持不变。现在我无法弄清楚问题是否依赖于ScrollView或内容,但我认为这是内容viewcontroller的一个问题,因为我使用autolayout来设置约束......
此时我认为当滚动显示下一个viewcontroller时,ScrollView会出现问题。
下面我插入屏幕拍摄以显示我的情况..因为你可以看到内容被移动到右边并且不会保持在X位置零。
你可以帮我弄清楚我错在哪里吗?什么代码和错误..ScreenShoot
使用的代码
-(void)initializeViewControllerTour {
/* Inserisce in una NSMutableArray i ViewController inizializzati da utilizzare*/
_a_TourVC = [[UPATour alloc] init];
_a_TourVC = [self.storyboard instantiateViewControllerWithIdentifier:@"A_Tour_App"];
_b_TourVC = [[UPBTour alloc] init];
_b_TourVC = [self.storyboard instantiateViewControllerWithIdentifier:@"B_Tour_App"];
_c_TourVC = [[UPCTour alloc] init];
_c_TourVC = [self.storyboard instantiateViewControllerWithIdentifier:@"C_Tour_App"];
_containerArrayVC = [[NSMutableArray alloc] init];
[_containerArrayVC addObject:_a_TourVC];
[_containerArrayVC addObject:_b_TourVC];
[_containerArrayVC addObject:_c_TourVC];
NSInteger index = 0;
/* Imposta i valori per la ScrollView */
CGSize scrollViewSize = CGSizeMake([_containerArrayVC count] * _scrollView.frame.size.width, _scrollView.frame.size.height);
_scrollView.contentSize = scrollViewSize;
_scrollView.scrollEnabled = YES;
_scrollView.showsVerticalScrollIndicator = NO;
_scrollView.showsHorizontalScrollIndicator = NO;
_scrollView.pagingEnabled = YES;
_scrollView.delegate = self;
/* Imposta il PageControl */
_pageControl.userInteractionEnabled = NO;
_pageControl.numberOfPages = [_containerArrayVC count];
_pageControl.currentPage = index;
/* Crea il ciclo For per i ViewController basandosi sulla MutableArray */
for (_currentViewController in _containerArrayVC) {
[self addChildViewController:_currentViewController];
CGFloat originx = (index) * _scrollView.frame.size.width;
_currentViewController.view.frame = CGRectMake(originx, 0, _scrollView.frame.size.width, _scrollView.frame.size.height);
[_scrollView addSubview:_currentViewController.view];
[_currentViewController didMoveToParentViewController:self];
index ++;
}
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat pageW = _scrollView.frame.size.width;
CGFloat segmentPage = _scrollView.contentOffset.x / pageW;
NSInteger page = lround(segmentPage);
_pageControl.currentPage = page;
}