2

我有一个 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];

}

非常感谢!

4

2 回答 2

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
}

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

于 2009-08-30T05:41:59.960 回答
0

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

于 2011-03-29T02:26:48.660 回答