gpt4 book ai didi

ios - UIView 挥动 ARM

转载 作者:行者123 更新时间:2023-11-29 03:05:01 24 4
gpt4 key购买 nike

我正在尝试使用 UIView 动画制作 ARM 波浪效果(你好!),但当最后一个动画消失时它会快速回到开头。我想让波浪来回走动。

第一个关键帧:旋转 30˚第二个关键帧:旋转 -30˚第三个关键帧:应该是旋转 0˚

    arm.layer.anchorPoint = CGPointMake(1.0, 1.0);
float x = arm.frame.origin.x + arm.frame.size.width;
float y = arm.frame.origin.y + arm.frame.size.height;
arm.layer.frame = CGRectMake(x, y, arm.frame.size.width, arm.frame.size.height);
[self.scrollView arm];


float degrees = 30.0;
float radians = (degrees/90.0)*M_PI;
[UIView animateKeyframesWithDuration:4.0f delay:0.0 options:UIViewKeyframeAnimationOptionRepeat
animations:^{
[UIView addKeyframeWithRelativeStartTime:0 relativeDuration:.5 animations:^{
arm.transform = CGAffineTransformMakeRotation(radians);
}];
[UIView addKeyframeWithRelativeStartTime:.5 relativeDuration:.75 animations:^{
arm.transform = CGAffineTransformMakeRotation(-radians);
}];
[UIView addKeyframeWithRelativeStartTime:1.25 relativeDuration:.5 animations:^{
arm.transform = CGAffineTransformMakeRotation(0);
}];

最佳答案

原因是您在关键帧动画的前两帧用完了整个动画。这些是相对时间和相对持续时间;它们必须都小于 1!

因此,在第一个动画中,您用掉了一半的动画 (.5)。

在第二个中,你从动画的一半开始 (.5),然后用完整个动画的其余部分(.75 大于 >.5 这是你剩下的全部)。

所以第三个永远不会发生。无论如何,这完全是疯了:你不能 1.75 的相对开始时间,因为 1 是动画的结束。阅读文档:

This value must be in the range 0 to 1, where 0 represents the start of the overall animation and 1 represents the end of the overall animation. For example, for an animation that is two seconds in duration, specifying a start time of 0.5 causes the animations to begin executing one second after the start of the overall animation.

关于ios - UIView 挥动 ARM ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22876070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com