iOS编码新手,所以这可能是一个语法问题而不是其他任何东西。我正在尝试实现一个加载了图像对象数组的UIImageView。在右键滑动时,我想移动到数组中的下一个对象,并将其加载到视图中。我把数组加载得很好,只是不知道如何在语法上如何获取数组中的当前位置。我意识到这是一个完整的n00b问题,所以免费声誉对你有用。
下面是一些代码:
- (void)viewDidLoad
{
[super viewDidLoad];
imageArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.jpg"],[UIImage imageNamed:@"2.jpg"], nil];
imageView.image = [imageArray objectAtIndex:0];
}
- (IBAction)swipeRightGesture:(id)sender {
imageView.image = [imageArray somethingsomething];//load next object in array
}
答案 0 :(得分:3)
数组没有当前位置。它们不像流,它们只是容器。
所以有两种方法可以解决这个问题:
NSInteger
的形式单独保持数组位置。根据需要增加和减少它。使用objectAtIndex
获取对象。indexOfObject
查找当前图片的位置。根据需要增加和减少。使用objectAtIndex
获取对象。我建议采用第一种方法。
答案 1 :(得分:1)
- (IBAction)swipeRightGesture:(id)sender
{
NSUInteger index = [imageArray indexOfObject:imageView.image] + 1;
// do something here to make sure it's not out of bounds
//
imageView.image = [imageArray objectAtIndex:index];//load next object in array
}
答案 2 :(得分:1)
解决方案如下:
-(void)next
{
if (currentIndex < (count - 1))
{
currentIndex ++;
NSLog(@"current index : %d", currentIndex);
}
}
-(void) previous
{
if (currentIndex > 1) {
currentIndex --;
[self.commsLayer performOperation:currentIndex];
NSLog(@"current index : %d", currentIndex);
}else
{
if (currentIndex == 1) {
currentIndex --;
NSLog(@"first current index : %d", currentIndex);
}
}
}