ScrollView页面指示器未显示

时间:2013-04-23 06:20:12

标签: ios6 uiscrollview pagination splash-screen

我是 IOS 的新手,所以请帮助我指导这个问题。

我正在处理三个视图,这三个视图打开了由scroll viewpagination连接的三个不同图像。我正在使用 XIB 来获取分页逻辑和滚动视图。

我面临两个问题:

  1. 我无法在屏幕上显示不同视图的页面指示符

  2. 一旦我到达第三个视图,我发现很难移动到下一个视图控制器。

  3. 我正在关注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 个答案:

答案 0 :(得分:1)

我认为回复可能会迟到但可能仍然可能会受到打击并需要帮助,然后这是您第二个问题的解决方案:

回答第2部分.-&gt;

尝试添加此代码

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部分。 - &gt;尝试再次阅读Ray Wanderlich教程并检查XIB的设置,您可能已跳过某些信息要添加到插座或页面指示器上。

希望它适合你。

相关问题