0

在我的代码中的某个时刻,我设置UIImageView * imageView.imageUIImage * myImage. 从这一点来看,我很想查看myImage.imageView

在任何myImage更改上,我都想imageView展示myImage. 希望你能理解。谢谢你。

-- 编辑 1 以获得更好的解释。

在代码中的某个时刻,我将 imageView 的图像设置为myClass.image. 从这一点开始,我想imageViewmyClass.image. 例如myClass.image = [UIImage imageNamed:@"foo"];. 两者imageViewmyClass.image都是具有保留的属性。现在,当我更改 时myClass.image,我还必须设置imageView.image = myClass.image在图像视图中查看新图像。

4

2 回答 2

2

看看KVO

myClass.image属性添加一个观察者,当它发生变化时,更新你的imageView. 代码看起来像:

// To add the observer
[myClass addObserver:self forKeyPath:@"image" options:0 context:0];


// And to listen for changes
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    if ([keyPath isEqualToString:@"image"])
        myImageView.image = object.image;
    else
        [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
于 2012-04-04T11:55:29.707 回答
1

不久前我为此编写了一个实用程序类,因此您可以从我的 Dropbox下载它。

语法是这样的:

[self bind:@"myImage" toObject:imageView keyPath:@"image"];
...
[self unbind:@"myImage" fromObject:imageView keyPath:@"image"];
于 2012-04-04T11:56:48.200 回答