有一个非常奇怪的问题。我有一个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会有所不同。