所以我使用UIImageView动画一组图像。它有效,但事情正在调整奇怪。我在扩展的UIImageView类中初始化所有内容,如下所示:
tImage = [UIImage imageNamed:[NSString stringWithFormat:@"%@.png",tName]];
self = [self initWithImage: tImage];
NSMutableArray *frameArray = [[NSMutableArray alloc] initWithCapacity:0];
UIImage *tFrame;
for(int i = 1; i < prp.frames + 1; i++) {
tFrame = [UIImage imageNamed:[NSString stringWithFormat:@"%@%d.png", tName, i]];
[frameArray addObject:tFrame];
}
CGRect cropRect = CGRectMake(0.0, 0.0, tFrame.size.width, tFrame.size.height);
self.bounds = cropRect;
[self setContentMode:UIViewContentModeScaleAspectFit];
self.clipsToBounds = YES;
[self setAnimationImages:frameArray];
[self setAnimationDuration:prp.frameDur];
[self startAnimating];
prp.frames
和prp.frameDur
是我从自定义属性结构中传入的值。
我遇到的问题是每个阶段的图像大小都不同。我的源图像都是59x47。 tImage(UIImage)设置为46x26(检查size.width和size.height属性)。 tFrame(UIImage)设置为53x35(检查相同的属性)。有没有人知道为什么会发生这种情况?为什么它不能初始化为原始图像大小(59x47)以及为什么基于它们的两个UIImage对象会彼此不同?
答案 0 :(得分:0)
我自己想通了。我已经将用于tImage的源图像从46x26尺寸更改为59x47(通过替换它们)(两者之间的图像名称相同)。它仍然使用46x26图像,在缓存或我猜的东西。我通过清理和重建项目来修复它。一切都很好。所以这可以是封闭的或其他什么。