开发者

Objective C speeding up animation / object creation

开发者 https://www.devze.com 2022-12-10 21:34 出处:网络
What kind of trick can I use to speed up and improve an image sequence animation? I\'m using the code below, but then just running through the codes below takes a couple of seconds to finish.

What kind of trick can I use to speed up and improve an image sequence animation?

I'm using the code below, but then just running through the codes below takes a couple of seconds to finish.

Once the animations have been created, my phone seems to get much slower too.

Please enlight.

Thanks, Tee

    NSMutableArray * sequenceArray;
sequenceArray = [[NSMutableArray alloc] init];

int k;
int xPos = 0;
int yPos = 50;
for (k = 1; k <= 48; k++)
{
    UIImageView* dynamicView = [[UIImageView alloc] initWithFrame:self.view.frame];
    [sequenceArray addObject:dynamicView];

    int i;
    NSMutableArray *a = [NSMutableArray array];
    for (i = 1; i <= 102; i++)
    {
        [a addObject:[UIImage imageNamed:[NSString stringWithFormat:@"loop2 %d.png", i]]];
    }

    dynamicView.animationImages = a;
    //[a release];

    // all frames will execute in 1.75 seconds
    dynamicView.animationDuration = 1.6;
    // repeat the annimation forever
    dynamicView.animati开发者_StackOverflow中文版onRepeatCount = 0;


    CGRect frame1 = dynamicView.frame;
    frame1.size.width = 34;
    frame1.size.height = 34;
    frame1.origin.x = xPos;
    frame1.origin.y = yPos;
    dynamicView.frame = frame1;

    if (k % 8 == 0) {
        xPos = 0;
        yPos += 40;
    }

    xPos += 40;
    NSLog(@"step last");
    // start animating
    [dynamicView startAnimating];
    // add the animation view to the main window 
    [self.view addSubview:dynamicView];
    [dynamicView release];
}


So, you're creating 48 UIImageViews, each with an animation of the same 102 frames? Am I reading that right?

The first thing that occurs to me is to pull this out of the other loop, since it's loading the same array each time, and just assign it to each view:

    int i;
    NSMutableArray *a = [NSMutableArray array];
    for (i = 1; i <= 102; i++)
    {
            [a addObject:[UIImage imageNamed:[NSString stringWithFormat:@"loop2 %d.png", i]]];
    }

But, really, why are you doing this?

0

精彩评论

暂无评论...
验证码 换一张
取 消