在阵列UIImageview中更新UIImage

时间:2012-05-19 08:01:57

标签: iphone objective-c xcode

我现在可以在数组中显示一个UIImageView,但使用以下内容:

[[self.guess objectAtIndex:1] setFrame:CGRectMake(20, 20, 100, 100)];
[self.view addSubview:[self.guess objectAtIndex:1]];

如果我想在阵列中的一个UIImageViews中更改图像 我可以用:

[self.guess replaceObjectAtIndex:1 withObject:Square];

但我必须删除原始视图,然后再次添加新的子视图:

[[self.guess objectAtIndex:1] removeFromSuperview];
[self.view addSubview:[self.guess objectAtIndex:1]];

麻烦的是,我的新子视图不会继承帧的位置和大小 原始图像(因为这可能已经改变)。有没有办法做到这一点 更容易吗?

我希望有这样的东西,只会更新原件 图像在相同位置,大小相同:

[self.guess.image replaceObjectAtIndex:1 withObject:Square.image];

再次感谢!

3 个答案:

答案 0 :(得分:1)

是否可以仅存储数组中的图像并且只有一个UIImageView?然后,只需替换UIImageView元素中的图像

答案 1 :(得分:1)

Radu已经说过,保留一系列图像或图像名称会更好。然后你也不必从superView中删除imageView,只需重用一个且只有一个ImageView。

所以你留下的是这样的

yourImageView.image = [self.guess objectAtIndex:1];

如果您只将名称存储在数组中

yourImageView.image = [UIImage imageNamed:[self.guess objectAtIndex:1]];

答案 2 :(得分:0)

如果你已经尝试过,我不会这样做,但这应该可行。

UIImageView *img = (UIImageView *)[self.guess objectAtIndex:1];
img.image = Your Image;