2012-02-16 7 views
2

を動作しません。私はアニメーションを作ることができるので、この関数を繰り返し呼び出すアニメーションを作ってるんだ:UIImageView setImageは

私は問題を持っている方法は、UIImageViewのサブクラスクラス

@interface MyCustomImageView : UIImageView { 
の方法であり、

&それは以下の通りです:

- (void) animationShowFrame: (NSInteger) frame { 
    NSLog(@"frame: %d", frame); 

    if ((frame >= animationNumFrames) || (frame < 0)) 
     return; 

    NSData *data = [animationData objectAtIndex:frame]; 
    UIImage *img = [UIImage imageWithData:data]; 
    NSLog(@"%@",img); 
    NSLog(@"data: %d", [data length]); 
    [self setImage:img]; 
} 

問題は、最初のイメージが完全に設定されているようにそれが見えますが、それらの残りの部分は無視される、ということです... NSLoggingそれらの画像はそこにあることがわかります&データは毎回異なりますので、UIImageView &を使って自分自身(クラスはUIImageViewの子です)にaddSubviewを試みてもOKですこの場合、私はあまりにも多くのメモリを使用しています... コンソールの説明を求めて、私はそれを設定した後にself.image = nilがどのように見えるかを確認できます... 私は何が分かりませんそうでなければ私はこれでできます、それは私を夢中にしています。

+0

あなたのクラスで 'UIImageView'のメソッドをオーバーライドしましたか? – Peter

+0

また、 'setImage'への他の呼び出しがあるか確認してください。 – onmyway133

答えて

4

UIImageViewの代わりにUIViewにサブクラス化し、内部のプロパティとしてUIImageViewを作成してみてください。

- (void) animationShowFrame: (NSInteger) frame { 

    NSData *data = [animationData objectAtIndex:frame]; 
    UIImage *img = [UIImage imageWithData:data]; 
    [self.imageView setImage:img]; 
} 

はそれが役に立てば幸い:

@interface CustomView : UIView { 
    UIImageView *imageView; 

その後、animationShowFrameにそのImageViewのを使用!

+0

これは完璧に動作します! Thnks – Oscar

関連する問題