2013-04-23 29 views
3

我是新來的IOS所以請幫我指導這個問題。ScrollView頁指標沒有出現

我工作的三個視圖打開由scroll viewpagination連接的三個不同的圖像。我正在使用XIB獲取分頁邏輯和滾動視圖。

我面臨兩個問題:

  1. 我不能讓頁面指示符出現不同的意見在屏幕上

  2. 我發現很難移動到下一個視圖控制器一旦我達到第三個視圖。

我關注Ray Wanderlich的tutorial。一旦用戶在到達最後一頁時嘗試滑動到下一頁,我就會觸動添加代碼以移動到下一個視圖控制器的位置。

我的代碼是這樣的:

- (void)viewDidLoad { 
[super viewDidLoad]; 


    self.navigationController.navigationBarHidden =YES; 
// Set up the image we want to scroll & zoom and add it to the scroll view 
self.pageImages = [NSArray arrayWithObjects: 
        [UIImage imageNamed:@"IMAGE1.png"], 
        [UIImage imageNamed:@"IMAGE2.png"], 
        [UIImage imageNamed:@"IMAGE3.png"], 
        // [UIImage imageNamed:@"photo4.png"], 
        // [UIImage imageNamed:@"photo5.png"], 
        nil]; 

NSInteger pageCount = self.pageImages.count; 

// Set up the page control 
self.pageControl.currentPage = 0; 
self.pageControl.numberOfPages = pageCount; 

// Set up the array to hold the views for each page 
self.pageViews = [[NSMutableArray alloc] init]; 
for (NSInteger i = 0; i < pageCount; ++i) { 
    [self.pageViews addObject:[NSNull null]]; 
} 

}

- (void)loadVisiblePages { 
// First, determine which page is currently visible 
CGFloat pageWidth = self.scrollView.frame.size.width; 
NSInteger page = (NSInteger)floor((self.scrollView.contentOffset.x * 2.0f + pageWidth)/(pageWidth * 2.0f)); 

// Update the page control 
self.pageControl.currentPage = page; 

NSLog(@"One %d",page); 

if (page == 2) { 

    page = 3; 

    if(page == 3){ 
     NSLog(@"Working"); 

     SignInViewController *view = [[SignInViewController alloc]initWithNibName:@"SignInViewController" bundle:nil]; 
     [self.navigationController pushViewController:view animated:NO]; 
     [view release]; 
     view=nil; 
    } 

} 

// Work out which pages we want to load 
NSInteger firstPage = page - 1; 
NSInteger lastPage = page + 1; 

// Purge anything before the first page 
for (NSInteger i=0; i<firstPage; i++) { 
    [self purgePage:i]; 
} 


    // Load pages in our range 
for (NSInteger i=firstPage; i<=lastPage; i++) { 
    [self loadPage:i]; 


} 


    // Purge anything after the last page 
for (NSInteger i=lastPage+1; i<self.pageImages.count; i++) { 
    [self purgePage:i]; 

} 

}

我想我的視圖控制器的線添加爲:

SignInViewController *view = [[SignInViewController alloc]initWithNibName:@"SignInViewController" bundle:nil]; 
      [self.navigationController pushViewController:view animated:NO]; 
      [view release]; 
      view=nil; 

但這使得第三個圖像消失一旦用戶嘗試從第二張圖像滑動到第三張圖像,就會將用戶直接帶到我的SignInView控制器頁面。

我該怎麼做才能讓用戶看到第三張圖像,然後檢測到滑動並使用動畫移動到下一個視圖控制器。我試着用滑動動畫和檢測,但它不適合我。 我需要哪些代碼以及如何幫助!!

回答

1

我想可能是遲到的答覆,但可能你仍然可能會被擊中,需要幫助,然後這裏是解決你的第二個問題:

回答的第2部分 - >

嘗試,添加此代碼

if (page == 2) { 

    page = 3; 

    if(page == 3){ 

     NSLog(@"content ofset-- %f",self.scrollView.contentOffset.x); 

     if (self.scrollView.contentOffset.x>=700) 
     { 
      SignIn2ViewController *view = [[SignIn2ViewController alloc]initWithNibName:@"SignIn2ViewController" bundle:nil]; 
      [self.navigationController pushViewController:view animated:NO]; 
      [view release]; 
      view=nil; 
     } 

    } 
} 

您可以根據需要檢查偏移量的值。 可能適用於你。

並回答第1部分。 - >嘗試再次閱讀Ray Wanderlich教程,並檢查XIB的設置,您可能會跳過一些信息添加到插座或頁面指示器上。

希望它適合你。

+0

嗨@iOSNiks謝謝我也做了類似的事情,它爲我工作。感謝回覆。我再次檢查了教程和源代碼,但仍未能解決爲什麼頁面指示符不顯示。我現在將添加指標的自定義圖像。 – sac 2013-04-26 09:20:46