你如何“乒乓”一个UIView图像序列动画

时间:2009-08-30 04:27:01

标签: iphone image animation uiimageview sequence

我有一个UIImageView,它加载了一个png图像序列。

我的问题是 - 你知道我能用什么方式“打乒乓”动画片段吗? 因此它从1-24向前播放然后从24-1向后播放并循环播放。

(技术上应该是:1-24然后是23-1然后是2-24然后是23-1 ......等等)

- (void) loadAnim01 {
mon01 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mon01_01.png"]];
mon01.center = CGPointMake(258,69);
NSMutableArray *array = [NSMutableArray array];
for (int i = 1; i <= 24; i++) 
    [array addObject:[UIImage imageNamed:[NSString stringWithFormat:@"mon01_%02d.png",i]]];
mon01.animationImages = array;
mon01.animationDuration = 1.0;
mon01.animationRepeatCount = 0;
[self.view addSubview:mon01];
[mon01 release];

}

非常感谢!

2 个答案:

答案 0 :(得分:7)

for (int i = 1; i <= 24; i++) {
    [array addObject:[UIImage imageNamed:[NSString stringWithFormat:@"mon01_%02d.png",i]]];
}
for (int j = 23; j >= 2; j--) {
    [array addObject:[array objectAtIndex:j-1]];  // -1 since arrays are 0-based
}

这会以相反的顺序添加除了第一个和最后一个动画之外的所有动画的第二个副本,这应该会给你一个乒乓效果。

答案 1 :(得分:0)

不,Cocoa中的所有内容都是引用计数的,因此多个集合中的对象的成员资格只有一个实例,除非您使用副本。