0

我现在可以显示一个数组内的 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];

再次感谢!

4

3 回答 3

1

Radu 已经说过,最好保留一组图像或图像名称。然后你也不必从 superView 中删除 imageView,你只需重用一个也是唯一一个 ImageView。

所以你留下的是这样的

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

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

yourImageView.image = [UIImage imageNamed:[self.guess objectAtIndex:1]];
于 2012-05-19T09:27:06.480 回答
1

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

于 2012-05-19T08:08:47.860 回答
0

如果您已经尝试过,我不知道,但这应该可以。

UIImageView *img = (UIImageView *)[self.guess objectAtIndex:1];
img.image = Your Image;
于 2012-05-19T08:57:21.020 回答