嗨我在UIScrollview中有10个图像现在我可以向前滚动,如从1到2,3,4等,但在我的项目中,我需要向后滚动图像,如从1到10到左手边 这是我的代码
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
CGFloat pageWidth = cardsScrollView.frame.size.width;
NSUInteger page = floor((self.cardsScrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
if(page + 1 == [flashCardArry count]){
for (NSUInteger i = 0; i < [flashCardArry count]; ++i) {
int nElements = [flashCardArry count] - i;
int n = (arc4random() % nElements) + i;
[flashCardArry exchangeObjectAtIndex:i withObjectAtIndex:n];
}
[self.cardsScrollView scrollRectToVisible:CGRectMake(self.cardsScrollView.frame.size.width * 0 , 0, self.cardsScrollView.frame.size.width, self.cardsScrollView.frame.size.height) animated:NO];
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
CGFloat pageWidth = cardsScrollView.frame.size.width;
NSUInteger page = floor((self.cardsScrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
答案 0 :(得分:0)
您可以通过在scrollView上添加10到1的imageViews来实现这一点,然后将滚动视图的contentOffset指向最后一个图像,即图像1。 因此,用户最初无法向右滚动,他可以向左滚动以查看下一张图像。
答案 1 :(得分:0)
因此。如果你想要循环滚动视图,你需要接下来的事情:
1)隐藏scrollView指标
scrl.showsHorizontalScrollIndicator = NO;
scrl.showsVerticalScrollIndicator = NO;
2)在滚动视图的开头添加一个项目,在结尾添加一个项目
[5'] | [0][1][2][3][4][5] | [0']
| --- full_size--- |
3)一旦用户滚动到5'项目,我们通过添加full_size
来更新内容偏移4)一旦用户滚动到0'项目,我们通过减去full_size
来更新内容偏移量- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint contentOffset = scrollView.contentOffset;
// First item
if (contentOffset.x < page_size) { // We are now faking last page
scrollView.contentOffset += full_size; // Jumping to actual last page
}
// Last item
if (contentOffset.x > full_size) { // We are now faking first page
scrollView.contentOffset -= full_size; // Jumping to actual first page
}
}
5)为了减少跳跃量(特别是在边框上),你可以从两侧添加更多2个或更多的假物品