我现在可以在数组中显示一个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];
再次感谢!
答案 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;