从数组中获取所选图像以在另一视图中显示

时间:2013-02-11 13:12:03

标签: ios objective-c uiimage

我正在尝试从图像数组中提取所选图像。所选图像应以新视图显示..

- (void)viewDidLoad{
[super viewDidLoad];

selectedTag = 0;

imagesName = [[NSArray alloc]initWithObjects:@"nature1.jpg",@"nature2.jpg",@"nature3.jpg",@"nature4.jpg",@"nature5.png",@"nature6.jpg",nil];
images = [[NSMutableArray alloc]init];

imageScroll.delegate = self;
imageScroll.scrollEnabled = YES;
int scrollWidth = 768;
imageScroll.contentSize = CGSizeMake(scrollWidth,605);

int xOffset = 0;

for(index=0; index < [imagesName count]; index++)
{

    UIButton *img = [UIButton buttonWithType:UIButtonTypeCustom];
    img.tag = index;
    selectedTag = img.tag;

    img.bounds = CGRectMake(10, 10, 50, 50);
    img.frame = CGRectMake(50+xOffset, 120, 270, 350);

    NSLog(@"image: %@",[imagesName objectAtIndex:index]);
    [img setImage:[UIImage imageNamed:[imagesName objectAtIndex:index]] forState:UIControlStateNormal];

    [images insertObject:img atIndex:index];
    imageScroll.contentSize = CGSizeMake(scrollWidth+xOffset,510);
    [imageScroll addSubview:[images objectAtIndex:index]];
    xOffset += 370;


    [img addTarget:self action:@selector(newView:) forControlEvents:UIControlEventTouchUpInside];
    selectedTag = img.tag;    
}
}
-(void)newView:(id)sender{

NSLog(@"%@",sender);
int f;
f = [sender tag];


CGRect rec = CGRectMake(0, 0, 250, 250);
[self setView:[[[UIView alloc] initWithFrame:rec] autorelease]];
[[self view] setBackgroundColor:[UIColor grayColor]];
UIImageView *im = [[UIImageView alloc] initWithImage:[imagesName objectAtIndex:f]];


im.bounds = CGRectMake(10, 10, 50, 50);
im.frame = CGRectMake(250, 120, 270, 350);


[[self view] addSubview:im];

}

有人可以帮我把所选图片提取到另一个视图吗?在此先感谢..

1 个答案:

答案 0 :(得分:2)

您正在设置字符串而不是图像。使用这段代码

UIImage *img = [UIImage imageNamed:[imagesName objectAtIndex:f]];
UIImageView *im = [[UIImageView alloc] initWithImage:img];