我想显示一系列缩略图,您可以在其中看到下一个缩略图的一部分,类似于应用商店的工作方式。
我的问题是滚动到下一张图片并不顺畅。如果您向左滑动太慢,它会反弹到同一页面,但如果滚动得太快,它会滚动得太远,然后反弹回到下一张幻灯片。我怎样才能使这个应用程序商店与此类似。我认为函数scrollViewDidScroll可以做到这一点,但是无法让它工作,所以到目前为止我的代码是:
有人可以帮忙吗?
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { int page = scrollView.contentOffset.x / scrollView.frame.size.width; pageControl.currentPage = page; CGRect frame = scroller.frame; if (page == 0) { frame.origin.x = 0 } else if (page == 1) { frame.origin.x = 195; } else if (page == 2) { frame.origin.x = 410; } else if (page == 3) { frame.origin.x = 630; } frame.origin.y = 0; [scroller scrollRectToVisible:frame animated:Yes]; } - (void)viewDidLoad { [super viewDidLoad]; for (int i=1; i < 5; i++) { if (i == 1) { imagen.frame = CGRectMake(30, 0, 217, 317); } else { imagen.frame = CGRectMake((i-1)*217 + 30, 0, 217, 317); } [scroller addSubView:imagen]; } scroller.delegate = self; scroller.contentSize = CSizeMake(320*4, 317); scroller.pagingEnabled = YES; pageControl.numberOfPages=4; pagecontrol.currentPage=0;
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { int page = scrollView.contentOffset.x / scrollView.frame.size.width; pageControl.currentPage = page; CGRect frame = scroller.frame; if (page == 0) { frame.origin.x = 0 } else if (page == 1) { frame.origin.x = 195; } else if (page == 2) { frame.origin.x = 410; } else if (page == 3) { frame.origin.x = 630; } frame.origin.y = 0; [scroller scrollRectToVisible:frame animated:Yes]; } - (void)viewDidLoad { [super viewDidLoad]; for (int i=1; i < 5; i++) { if (i == 1) { imagen.frame = CGRectMake(30, 0, 217, 317); } else { imagen.frame = CGRectMake((i-1)*217 + 30, 0, 217, 317); } [scroller addSubView:imagen]; } scroller.delegate = self; scroller.contentSize = CSizeMake(320*4, 317); scroller.pagingEnabled = YES; pageControl.numberOfPages=4; pagecontrol.currentPage=0;
答案 0 :(得分:2)
滚动分配了哪里?
将分页启用设置为false。