我创建了一个包含多个图像的分页的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);
答案 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]];
}