我正在制作一个重复调用此函数的动画,以便我可以制作动画:
我遇到问题的方法是 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 将 addSubview 添加到自身(该类是 UIImageView 的子级),并且它们正在显示,但是这个不是这样,因为在这种情况下我使用了太多内存...... 在控制台中询问描述,我可以看到设置后 self.image = nil ... 我不知道我还能用这个做什么,这让我发疯。
最佳答案
尝试子类化为 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];
}
希望对你有帮助!
关于objective-c - UIImageView setImage 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9315106/