最好用这种个人感觉:
- (void)scanAnimation
{
if ([UIDevicecurrentDevice].batteryState==UIDeviceBatteryStateUnplugged) {
self.scanImageView.alpha =0.0;
return;
}
self.scanImageView.alpha =0.5;
self.scanImageView.frame =CGRectMake(28,GNDEVICE_SCREEN_HEIGHT-82,320, 82);
[UIViewbeginAnimations:@"ChargeViewAnimationID"context:NULL];
[UIViewsetAnimationDuration:5.0];
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseIn];
[UIViewsetAnimationRepeatAutoreverses:NO];
[UIViewsetAnimationRepeatCount:MAXFLOAT];
self.scanImageView.frame =CGRectMake(28, -82,320, 82);
[UIViewcommitAnimations];
}
用下面这种方法会出现莫名的问题,例如不用调用到dealloc
- (void)scanAnimation
{
if ([UIDevicecurrentDevice].batteryState==UIDeviceBatteryStateUnplugged) {
self.scanImageView.alpha =0.0;
return;
}
self.scanImageView.alpha =0.5;
self.scanImageView.frame =CGRectMake(28,GNDEVICE_SCREEN_HEIGHT-82,320, 82);
[UIViewanimateWithDuration:5.0animations:^{
self.scanImageView.frame =CGRectMake(28, -82,320, 82);
} completion:^(BOOL finished) {
[selfscanAnimation];
} ];
}
本文介绍了一种在iOS设备上检查电量状态的方法,并通过Objective-C实现了基于电量状态的动画效果。文章对比了两种不同的动画实现方式,一种使用`[UIView beginAnimations]`和`[UIView commitAnimations]`,另一种使用`[UIView animateWithDuration:]`循环调用,指出后者可能引发未预期的问题。
1571

被折叠的 条评论
为什么被折叠?



