我正在嘗試使用CADisplayLink
來調用MoveObjects
函數來動畫某些UIImageViews在頁面上「向下」。但是,儘管函數調用時間間隔爲0.0155-0.017,但動畫似乎每隔幾幀都會出現結尾,這與我嘗試使用NSTimer
來調用該函數時的方式相同。有什麼我做錯了,這是讓它結結巴巴?使用CADisplayLinkLink時出現口吃動畫
在viewDidLoad
:
displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(gameLoop)];
displayLink.frameInterval=1;
[displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
目前gameloop pnly調用UpdateObjects:
-(void)updateObjects{
timeStamp=[displayLink timestamp];
double frameTime=timeStamp-oldTime;
oldTime= timeStamp;
if (frameTime>10){
frameTime=0;
}
NSLog(@"%f",frameTime);
for (int i=0; i<objectsArray.count; i+=1) {
UIImageView *currentObject=[objectsArray objectAtIndex:i];
CGRect currentObjectFrame=[currentObject frame];
[currentObject setFrame:CGRectMake(CGRectGetMinX(currentObjectFrame), CGRectGetMinY(currentObjectFrame)+200*frameTime,CGRectGetWidth(currentObjectFrame) , CGRectGetHeight(currentObjectFrame))];
}
}
對於秋季運動不使用CAAnimation或UIKitDynamics的任何理由? –