2012-06-16 46 views
2

我创建了一个包含多个图像的分页的UIScrollView,每个“页面”有1个图像,我想知道是否有任何方法可以将图像彼此区分开来? Fx。当第一个图像显示时,我会有一个按钮将UILabel设置为'1',当第二个图像显示时,同一个按钮会将相同的UILabel设置为'2'。UIScrollView分页标记

这里是我的代码:

pictures = [NSArray arrayWithObjects: [UIImage imageNamed:@"AND.png"], [UIImage imageNamed:@"ALB.png"], nil]; 

    for (int i = 0; i < pictures.count; i++) { 
     CGRect frame; 
     frame.origin.x = 135 + (self.scrollViewQuiz.frame.size.width * i); 
     frame.origin.y = 40; 
     frame.size = CGSizeMake(50, 50); 

     UIImageView *subview = [[UIImageView alloc] initWithFrame:frame]; 
     subview.image = [pictures objectAtIndex:i]; 
     [self.scrollViewQuiz addSubview:subview]; 
    } 

    self.scrollViewQuiz.contentSize = CGSizeMake(self.scrollViewQuiz.frame.size.width * pictures.count, self.scrollViewQuiz.frame.size.height); 

回答

1

这听起来像你只是想计算“页码”的滚动视图当前显示。你可以尝试这样的事情作为你的按钮的动作:

- (IBAction)buttonWasTapped:(id)sender { 
    UIScrollView *scrollView = self.scrollViewQuiz; 
    int pageNumber = (int)roundf(scrollView.contentOffset.x/scrollView.bounds.size.width); 
    self.label.text = [NSString stringWithFormat:@"%d", pageNumber]; 
} 
+0

谢谢你,工作就像一个魅力:-) – user1411094

0

您可以实现以下滚动视图的委托方法:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 

在这里面,你会检查了滚动的contentOffset并设置相应的标签。

0

尝试这两种..这些应该工作..希望这有助于..

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
       CGFloat xOffset = scrollView.contentOffset.x; 
    int currentPage = floor(xOffset/scrollView.bounds.size.width); 
    [itsLabel setText:[NSString stringWithFormat:@"%i", currentPage]]; 
} 

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { 
       CGFloat xOffset = scrollView.contentOffset.x; 
    int currentPage = floor(xOffset/scrollView.bounds.size.width); 
    [itsLabel setText:[NSString stringWithFormat:@"%i", currentPage]]; 
} 
+0

非常糟糕,为什么我得到减去标记... :( –