我在将文件中的图像加载到数组时遇到了一些问题。我已经使用了我在这里找到的一系列问题,而且我没有想法......我是对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
如果您还有其他需要,请告诉我,并提前感谢您!
答案 0 :(得分: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];
}
}