我想要一个图层旋转,代码是这样的:
weightHand.bounds = CGRectMake(0,0,w,h);
weightHand.anchorPoint = CGPointMake(GET_COEFF(QCETEK_WHAT_UNITS, WEIGHTHANDE_APX_INDEX),
GET_COEFF(QCETEK_WHAT_UNITS, WEIGHTHANDE_APY_INDEX));
weightHand.transform = CATransform3DMakeRotation (SCALE_INIT_DEGREE , 0, 0, 1);
使用代码,weightHand真正旋转。但现在我想知道旋转动画何时完成。我希望在前一轮完成后继续旋转它。
我想可能会有一些委托可以在动画过程中的正确时间调用,说开始或完成。
请帮助我了解这些信息。非常感谢。 [编辑]:代码被粘贴。
if ( !bStopped ) {
[data_queue addObject:[NSNumber numberWithDouble:dbWeight]] ;
NSLog(@"Qu") ;
}
else {
NSLog(@"Con") ;
}
bStopped = NO ;
[UIView animateWithDuration:1 animations:^{
weightHand.transform = CATransform3DMakeRotation (CONVERT_TO_DISPLAY_FROM_KG(dbWeight), 0, 0, 1);
} completion:^(BOOL finished) {
if ( finished ) {
NSLog(@"Done") ;
bStopped = YES ;
if ( [data_queue count] == 0 ) return ;
double dbLocalWeight = [[data_queue objectAtIndex:0] doubleValue];
[data_queue removeObjectAtIndex:0];
[self setMainAnimation:dbLocalWeight] ;
}
}];
日志是这样的: 2013-12-05 22:10:49.524 Scale_Lite [969:60b] Con 2013-12-05 22:10:49.530 Scale_Lite [969:60b]完成 2013-12-05 22:10:49.674 Scale_Lite [969:60b] Con 2013-12-05 22:10:49.680 Scale_Lite [969:60b]完成 2013-12-05 22:10:49.724 Scale_Lite [969:60b] Con 2013-12-05 22:10:49.730 Scale_Lite [969:60b]完成 2013-12-05 22:10:49.924 Scale_Lite [969:60b] Con 2013-12-05 22:10:49.930 Scale_Lite [969:60b]完成