使用NSArray的UIImage对象显示一系列UIImageViews

时间:2011-08-11 02:39:34

标签: iphone uiimageview nsarray

我找不到一个简单的方法。有人帮吗?谢谢!

2 个答案:

答案 0 :(得分:0)

这就是用iOS4解决这个问题的方法。 iOS5添加了一种更简单的方法,但是你需要查看文档,因为它仍然在NDA下。


UIImageView *imageView = [[[UIImageView alloc] initWithFrame:CGRectZero] autorelease];
imageView.animationImages = [NSArray arrayWithObjects:
                                [UIImage imageNamed:@"one.png"],
                                [UIImage imageNamed:@"two.png"],
                                [UIImage imageNamed:@"three.png"],
                                [UIImage imageNamed:@"four.png"],
                                nil];

答案 1 :(得分:0)

将您的图像名称放入数组而不是图像,这在记忆方面要好得多。

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
CGFloat currentOffset = 0;
for (int i = 0; i < [imageArray count]; i++) {
    UIImageView *tmpImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[imageArray objectAtIndex:i]]];
    currentOffset += tmpImageView.frame.size.width;
    //currentOffset += tmpImageView.frame.size.height; // for vertical
    tmpImageView.frame = CGRectOffset(tmpImageView.frame, currentOffset, 0);
    //tmpImageView.frame = CGRectOffset(tmpImageView.frame, 0, currentOffset); // for vertical
    [scrollView addSubview:tmpImageView];
    [tmpImageView release];
}
scrollView.contentSize = CGSizeMake(currentOffset, scrollView.frame.size.height);
//scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, currentOffset); // for vertical

然后将该scrollView添加到您想要的视图中并将其释放。

正如您所看到的,这将使您的所有图像水平放置在其他图像旁边。如果要垂直执行此操作,只需取消注释所有注释行,并在每个注释行之前删除该行。