xcode objective c UIImageView动画启动滞后



有一个非常奇怪的问题。我有一个UIImageView通过ntimer随机移动。移动运行得相当平稳,没有任何问题,但由于某些原因,当视图加载动画时,动画将开始,然后重新开始,使其看起来滞后和不专业。知道是什么引起的吗?我之前有这个问题,改变时间间隔,然后改变它似乎修复了它,但现在不起作用。任何帮助都是非常感激的,因为这真的让我很沮丧。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    fScale = CGPointMake(.99, 1.01);
    df = CGPointMake(1,.5);
    fTimer = [NSTimer scheduledTimerWithTimeInterval:.05 target:self selector:@selector(fMove) userInfo:nil repeats:YES];
}
-(void)fMove
{
    form.center = CGPointMake(form.center.x +df.x, form.center.y + df.y);
    if (df.x <.15 && df.x > -.15)
    {
        df.x *= -1/df.x;
        fScale.x = .99;
        if(df.y > 0)
            df.y = .5;
        else
            df.y = -.5;
        fScale.y = 1.01;
    }
    if (df.x < .5 && df.x > -.5)
    {
        fScale.x *= .995;
        fScale.y *= .995;
    }
    if (form.center.x < 100 || form.center.x >220)
        df.x *= -1;
    if (form.center.y <10 || form.center.y >530)
        df.y *= -1;

    df.x *= fScale.x;
    df.y *= fScale.y;
}

只是一个想法。ViewDidLoad在viewController的view属性被加载时被调用。在视图被添加到视图层次结构和可见之前,可能需要一段时间(就你的应用程序而言),但你马上就启动了计时器。也许将计时器的起始点移到viewDidAppear会有所不同。

最新更新