2

我创建了一个 UIScrollView,其中包含多个图像的分页,每个“页面”有 1 个图像,我想知道是否有任何方法可以将图像彼此区分开来?外汇。当第一张图片显示时,我会有一个按钮将 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);
4

3 回答 3

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];
}
于 2012-06-16T20:49:23.837 回答
0

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

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

在其中您将检查滚动视图的 contentOffset 并相应地设置标签。

于 2012-06-16T20:43:22.763 回答
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]];
}
于 2012-06-16T20:46:28.253 回答