UIScrollView分页标记

时间:2012-06-16 20:32:47

标签: objective-c ios uiscrollview

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

这是我的代码:

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);

3 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:0)

您可以实现以下scrollview委托方法:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

在其中,您将检查scrollview的contentOffset并相应地设置标签。

答案 2 :(得分: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]];
}