Objective c 核心动画栏

Objective c 核心动画栏,objective-c,graphics,core-animation,cgaffinetransform,cabasicanimation,Objective C,Graphics,Core Animation,Cgaffinetransform,Cabasicanimation,目前我有一个图像。。。电池图标 _MeterBar = [[UIImageView alloc] initWithFrame:CGRectMake(25, 40, 50, 40)]; _MeterBar.image = [UIImage imageNamed:@"battery-empty-icon.png"]; _MeterBar.backgroundColor = [UIColor clearColor]; 我正在尝试添加一个动画,显示从web服务器获取值时电池加载到电池特定点的情况 获取

目前我有一个图像。。。电池图标

_MeterBar = [[UIImageView alloc] initWithFrame:CGRectMake(25, 40, 50, 40)];
_MeterBar.image = [UIImage imageNamed:@"battery-empty-icon.png"];
_MeterBar.backgroundColor = [UIColor clearColor];
我正在尝试添加一个动画,显示从web服务器获取值时电池加载到电池特定点的情况

获取值没有问题,但是添加动画是一个问题。我基本上复制并粘贴了一些用户以前回答的代码,但我被卡住了:/。添加动画时,没有图像

CABasicAnimation *scaleToValue = [CABasicAnimation animationWithKeyPath:@"transform.scale.x"];
scaleToValue.toValue = [NSNumber numberWithFloat:100.0f];
scaleToValue.fromValue = [NSNumber numberWithFloat:0];
scaleToValue.duration = 1.0f;
scaleToValue.delegate = self;
_MeterBar.layer.anchorPoint = CGPointMake(0.5, 1);
[_MeterBar.layer addAnimation:scaleToValue forKey:@"scaleRight"];
CGAffineTransform scaleTo = CGAffineTransformMakeScale(1.0f, 50.0f);
_MeterBar.transform = scaleTo;

[_PowerNowView addSubview:_MeterBar];
电池图标的宽度大于高度,因此我在x轴上从0->百分比设置动画

如果任何人有任何提示、提示或示例可以制作这一精确的动画,我将非常感谢您的帮助:)

多谢各位

这里是我找到的电池图标的URL:

对不起,不清楚,但我想有一个颜色层的电池图标分开

我想在电池图像上创建一个条形图,并根据电池的大小动态设置条形图的动画。。。。不实际调整电池图像本身的大小

因此将有两层,一层用于电池,主要是静态大小,另一层是彩色条,可能是绿色,表示电池图像的填充量

我想做的一个很好的参考是MINT应用程序的功能,其目的是记录您的银行对账单

上面最后的动画电池非常好,但我只想显示电池中的一个条,并根据拉取的数据值对其进行动画制作。

有几件事

你的比例为100会使你的图层比正常图层大100倍。如果一侧有300个像素,100的刻度将显示为一侧有30000个像素

您希望将值缩放到1.0,而不是100

此外,我不确定缩放变换是否会将以前的比例乘以增长因子。如果是这样,那么起始刻度值0将阻止它不断增长,因为任何乘以零的值仍然是零。尝试将from值从0.0改为0.0001

如果您希望电池图像从左向右增长,您不希望锚点为(0.5)而不是(.5,1)吗

而且,当您更改定位点时,它不仅会更改变换的中心,还会移动图像的位置。您需要调整位置以进行补偿。我总是要搔搔我的头,认真思考(而且通常都会弄错),但我想你会想把视图的X位置向右移动一半宽度

请注意,缩放图像会导致图像异常拉伸。它将开始短而肥,伸展到正常大小

最好将CAShapeLayer作为遮罩层附加到视图,并将形状层的路径从空矩形(宽度=0,高度=视图的完整高度)设置为视图的完整大小的矩形。这将导致视图在“擦除”动画中设置动画,从左到右显示视图,而不进行拉伸