UIImageView setImage不起作用

时间:2012-02-16 16:31:29

标签: objective-c image uiimageview uiimage

我正在制作一个动画,反复调用这个函数,所以我可以制作一个动画:

我遇到问题的方法是UIImageView的子类Class

的方法
 @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他我可以看到图像在那里&amp;每次数据都是不同的,所以,它们加载好了,即使我试图通过UIImageView&amp;和我自己(该类是UIImageView的孩子)添加子视图。他们正在展示,但这不是因为在这种情况下,我使用了太多的记忆...... 在控制台中询问说明,设置后我可以看到self.image = nil ... 我不知道我还能做些什么,这让我发疯了。

1 个答案:

答案 0 :(得分:4)

尝试将UIView子类化为UIImageView,并将UIImageView创建为内部属性。

@interface CustomView : UIView {
    UIImageView *imageView;

然后,在animationShowFrame中使用那个imageView:

- (void) animationShowFrame: (NSInteger) frame {

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

希望它有所帮助!