我遇到了需要循环的情况,但下面的代码只返回最后一个索引值。我需要它来返回下一个值并停止枚举。为了更好地解释,假设我有数字0-10,当按下按钮时我需要将索引增加1。现在说我一直按下这个按钮直到索引达到10,在下一次按下时,索引需要回零(也就是循环通过。)
任何帮助都将受到赞赏&我绝对会接受最好的答案。
提前致谢!
//grabs current index in a scrollview
long long currentSelectedIndex = [preview.swipeView currentIndex];
long long totalNumberOfAvailableSlots = [preview.swipeView indexTotal]; //index total is never an absolute value
@autoreleasepool {
//currentSelectedIndex is supposed/always to be zero on first run
for (int i; = (int)currentSelectedIndex; i <= totalNumberOfAvailableSlots; i++){
NSLog(@"loop: %d", i);
if (i == totalNumberOfAvailableSlots){
i = -1;
[preview.swipeView scrollToIndex:i]; //this will cause [preview.swipeView currentIndex] to be updated with "i" value.
}
}
}
答案 0 :(得分:1)
根据我的评论,您似乎想要的行为是自动滑动swipeView的内容。
制作一个调用swipeToNext
方法的计时器:
myTimer = [NSTimer scheduledTimerWithTimeInterval: target:self selector:@selector(swipeToNext) userInfo:nil repeats:YES];
然后处理滑动:
- (void)swipeToNext {
if ([preview.swipeView currentIndex] < [preview.swipeView indexTotal]) {
//Can swipe forward
[preview.swipeView scrollToIndex:[preview.swipeView currentIndex]+1];
} else {
//At last index. Need to go to first.
[preview.swipeView scrollToIndex:0];
}
}
答案 1 :(得分:0)
听起来你需要currentSelectedIndex
来完成这个重复序列0,1,2,3,4,5,6,7,8,9,10,0,1,......
在formLoad
内你需要初始化你的计数器
currentSelectedIndex = 0
在按下按钮的方法中,递增计数器 - 但使用模运算符返回余数 - 在这种情况下除以11
currentSelectedIndex = (currentSelectedIndex + 1) % 11
一般来说,你可以像这样生成一个0 ... n的序列
currentSelectedIndex = (currentSelectedIndex + 1) % (n + 1)