2011-04-11 53 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級,它只是顯示當前視圖哈!