2

我在将图像从文件加载到数组中时遇到了一些问题。我已经使用了我在这里找到的问题的组合,并且没有想法......我对objective-c很陌生,对其余的也很陌生。

我的 viewDidLoad 只是调用我的 showPics 方法,为了测试,我让 _imgView 只显示数组中位置 1 的图像。

这很可能是我显示图像的方式的问题。我的 Storyboard 中有一个 ViewController 和一个 ImageView(标题为:imgView)。

这是我的 showPics 方法:

-(void)showPics
{
    NSArray *PhotoArray = [[NSBundle mainBundle] pathsForResourcesOfType:@"jpg" inDirectory:@"Otter_Images"];
    NSMutableArray *imgQueue = [[NSMutableArray alloc] initWithCapacity:PhotoArray.count];
    for (NSString* path in PhotoArray)
    {
        [imgQueue addObject:[UIImage imageWithContentsOfFile:path]];
    }
    UIImage *currentPic = _imgView.image;
    int i = -1;

    if (currentPic != nil && [PhotoArray containsObject:currentPic]) {
        i = [PhotoArray indexOfObject:currentPic];
    }

    i++;
    if(i < PhotoArray.count)
        _imgView.image= [PhotoArray objectAtIndex:1];

}

这是我的viewDidLoad:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self showPics];
}

这是我的 ViewController.h

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIImageView *imgView;

@end

如果您需要其他任何东西,请告诉我,并提前感谢您!

4

1 回答 1

3

在您的showPics方法中,除了最初的“for-loop”之外,您对的所有引用都PhotoArray应该是对imgQueue. PhotoArray是路径名列表。imgQueue是实际UIImage对象的数组。

-(void)showPics {
    NSArray *PhotoArray = [[NSBundle mainBundle] pathsForResourcesOfType:@"jpg" inDirectory:@"Otter_Images"];
    NSMutableArray *imgQueue = [[NSMutableArray alloc] initWithCapacity:PhotoArray.count];
    for (NSString* path in PhotoArray) {
        [imgQueue addObject:[UIImage imageWithContentsOfFile:path]];
    }

    UIImage *currentPic = _imgView.image;
    int i = -1;

    if (currentPic != nil && [imgQueue containsObject:currentPic]) {
        i = [imgQueue indexOfObject:currentPic];
    }

    i++;
    if(i < imgQueue.count) {
        _imgView.image = [imgQueue objectAtIndex:1];
    }
}
于 2012-10-22T16:29:00.060 回答