0

コードのある時点で、に設定UIImageView * imageView.imageしましたUIImage * myImagemyImageこの時点から、 の変更を表示したいと思いますimageView

どんな変更でも、私は見せmyImageたいです。ご理解いただければ幸いです。ありがとうございました。imageViewmyImage

-- より良い説明のために 1 を編集します。

コードのある時点で、imageView のイメージをmyClass.image. imageViewこの時点から、 の変更に対応したいと思いmyClass.imageます。たとえばmyClass.image = [UIImage imageNamed:@"foo"];imageViewとはどちらもmyClass.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

しばらく前にこのユーティリティ クラスを作成したので、こちらのドロップボックスからダウンロードできます。

構文は次のようになります。

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