我有以下非 applicationDidFinishLaunching 方法
UIImage *image2 = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image2.jpg" ofType:nil]];
view2 = [[UIImageView alloc] initWithImage:image2];
view2.hidden = YES;
[containerView addSubview:view2];
我只是在图片中添加图片。但是因为我需要添加30-40个图像,我需要将上面的内容包装在一个函数中(它返回一个UIImageView),然后从循环中调用它。
这是我第一次尝试创建功能
-(UIImageView)wrapImage:(NSString *)imagePath
{
UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:imagePath
ofType:nil]];
UIImageView *view = [[UIImageView alloc] initWithImage:image];
view.hidden = YES;
return view;
}
然后调用它我到目前为止有以下内容,为简单起见,我只包装3张图像
//Create an array and add elements to it
NSMutableArray *anArray = [[NSMutableArray alloc] init];
[anArray addObject:@"image1.jpg"];
[anArray addObject:@"image2.jpg"];
[anArray addObject:@"image3.jpg"];
//Use a for each loop to iterate through the array
for (NSString *s in anArray) {
UIImageView *wrappedImgInView=[self wrapImage:s];
[containerView addSubview:wrappedImgInView];
NSLog(s);
}
//Release the array
[anArray release];
我有2个一般性问题
欢迎任何其他建议!
答案 0 :(得分:0)
请注意,在函数声明中,您应该返回指向UIImageView的指针,而不是UIImageView本身(即添加星号)。
此外,从函数返回视图时,您应自动释放它。否则会泄漏内存。初始化看起来应该是这样的:
UIImageView *view = [[[UIImageView alloc] initWithImage:image] autorelease];
其他一切看起来都很好。