【问题标题】:UIImageView setImage doesn't workUIImageView setImage 不起作用
【发布时间】:2012-02-16 16:31:28
【问题描述】:

我正在制作动画,重复调用此函数,以便制作动画:

我遇到问题的方法是 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 他们我可以看到图像在那里并且数据每次都不同,所以,它们加载正常,即使我尝试通过 UIImageView 将Subview 添加到自我(该类是 UIImageView 的孩子)并且它们正在显示,但是这个在那种情况下,我使用了太多内存,这不是原因...... 在控制台中询问描述,我可以看到 self.image = nil 设置后如何... 我不知道我还能用这个做什么,它快把我逼疯了。

【问题讨论】:

  • 你在你的课堂上重写了UIImageView的方法吗?
  • 还要检查在某处是否有其他对setImage 的调用

标签: objective-c image uiimageview uiimage


【解决方案1】:

尝试子类化为 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];
}

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    相关资源
    最近更新 更多