我是iOS开发人员的新手,还有一个我非常感谢的问题。
我有一个ViewController,它有一个我想要定期替换的属性:
@property (strong, nonatomic) IBOutlet UIImageView *image;
现在在我更新该属性的另一个类中,我首先分配并初始化ViewController,然后相应地更新该属性。然而,当我用另一个图像替换该图像时,它只使用第一个图像。但是,如果我使用alloc init实例化另一个ViewController,那么一切正常。
所以我的问题是通过创建我的ViewController的新实例来更新的正确/最佳实践方式 - 内存效率明智是最佳实践吗?
感谢。
答案 0 :(得分:0)
听起来你肯定想要改变图像,而不是替换整个视图控制器。
您可以显示更改图像的代码吗?另外,请指定是否要更改其中的图像视图 或图像。 (图像视图显示屏幕上的实际图像。我建议您将属性命名为imageView
,以避免混淆。)
以下是两个例子。我假设有一个变量'theViewController',它包含一个引用你的视图控制器。
更换图片视图:
// Create a new image view with a new image inside it
theViewController.image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"img1"]];
替换图片:
// Put a new image into the existing image view
theViewController.image.image = [UIImage imageNamed:@"img1"];
最后一个示例演示了为什么属性名称imageView
最好是image
:现在,看起来您正在更改“图像上的图像”。但实际上,您正在更改imageView上的图像。