2011-04-11 46 views
0

我想在用户滚动浏览UIScrollView控件时使用UIScrollView来显示多个UIViews。我并不担心显示分页。UIScrollView和UIViews

我已经设法实现了一些,但没有按照我希望的方式工作。

目前:

我有3个ViewControllers不同的笔尖文件。根视图控制器是具有UIScrollView的控制器,用于加载视图控制器的其余部分。

NSMutableArray *controllers = [[NSMutableArray alloc] init]; 
    for (unsigned i = 0; i < kNumberOfPages; i++) { 
     [controllers addObject:[NSNull null]]; 
    } 
    self.viewControllers = controllers; 
    [controllers release]; 

    scrollView.pagingEnabled = YES; 
    scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * kNumberOfPages, scrollView.frame.size.height); 
    scrollView.showsHorizontalScrollIndicator = NO; 
    scrollView.showsVerticalScrollIndicator = NO; 
    scrollView.scrollsToTop = NO; 
    scrollView.delegate = self; 

    pageControl.numberOfPages = kNumberOfPages; 
    pageControl.currentPage = 0; 

    [self loadScrollViewWithPage:0]; 


- (void)loadScrollViewWithPage:(int)page { 
    if (page == 0) { 
     PageTwo *controller2 = [viewControllers objectAtIndex:page]; 
     if ((NSNull *)controller2 == [NSNull null]) { 
      controller2 = [[PageTwo alloc] initWithPageNumber:page]; 
      [viewControllers replaceObjectAtIndex:page withObject:controller2]; 
      [controller2 release]; 
     } 
     // add the controller's view to the scroll view 
     if (nil == controller2.view.superview) { 
      CGRect frame = scrollView.frame; 
      frame.origin.x = frame.size.width * page; 
      frame.origin.y = 0; 
      controller2.view.frame = frame; 
      [scrollView addSubview:controller2.view]; 
     } 
    } 
    if (page == 1) { 

    // replace the placeholder if necessary 
    NewController *controller = [viewControllers objectAtIndex:page]; 
    if ((NSNull *)controller == [NSNull null]) { 
     controller = [[NewController alloc] initWithPageNumber:page]; 
     [viewControllers replaceObjectAtIndex:page withObject:controller]; 
     [controller release]; 
    } 
    // add the controller's view to the scroll view 
    if (nil == controller.view.superview) { 
     CGRect frame = scrollView.frame; 
     frame.origin.x = frame.size.width * page; 
     frame.origin.y = 0; 
     controller.view.frame = frame; 
     [scrollView addSubview:controller.view]; 
    } 
    } 

这一切都很好...但是,我想要它做的是先加载根部笔尖。但我不知道如何去做这件事。我知道我必须将页数增加到3,但是当我初始化控制器时,我不知道如何告诉它页面== 0应该是当前视图。

任何想法?

更新:

唉,我忽略了的东西..没有注意到,如果在0水平不指定页面它只是显示当前视图哈!

傻我。

+1

这是否意味着你解决了你的问题?我使用http://idevzilla.com/2010/09/16/uiscrollview-a-really-simple-tutorial/设置我的第一个uiscrollview – 2011-04-11 01:10:21

回答

0

我忽略了一些东西..没有注意到,如果不指定一个页面在0级,它只是显示当前视图哈!