`

Animation Timing

 
阅读更多

一:Animation Timing Curves

 

1:Linear Animation Timing

 

2:Ease-In Animation Timing

 

3:Ease-Out Animation Timing

 

4:Ease-In Ease-Out Animation Timing

5:Custom Animation Timing

 

 自定义动画执行曲线设置

We create a custom timing with the initWithControlPoints:::: method on CAMediaTimingFunction like this:

- (CAMediaTimingFunction *)getTimingFunction {
        CGFloat c1x = 0.5;
        CGFloat c1y = 1.0;
        CGFloat c2x = 0.5;
        CGFloat c2y = 0.0;
      return [[CAMediaTimingFunction alloc    initWithControlPoints:cx1 :cy1 :cx2 :cy2];
}

 

写道
Since the initial and final values are already known (recall that they are {0, 0} and {1, 1}, respectively), we have to specify only the control
points. In our example, we set the first control point to {0.5, 1.0} and the second control point to {0.5, 0.0}.

 

-(void)setupMover {
        NSRect bounds = self.bounds;
         NSRect moverFrame =NSInsetRect(bounds, NSWidth(bounds) / 4.0f,NSHeight(bounds) / 4.0f);
        moverFrame.origin.x = 0.0f;
mover = [[NSImageView alloc] initWithFrame:moverFrame];
[mover setImageScaling:NSScaleToFit];
[mover setImage:[NSImage imageNamed:@"photo.jpg" ]];
[self addSubview:mover];
}
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self setupMover];
}
return self;
}

- (BOOL)acceptsFirstResponder {
return YES;
}
- (void)keyDown:(NSEvent *)event {
[self move];
}

- (CABasicAnimation *)moveAnimation {
if(nil == moveAnimation) {
moveAnimation = [CABasicAnimation animation];
moveAnimation.duration = 2.0f;
moveAnimation.timingFunction =
[[CAMediaTimingFunction alloc]
initWithControlPoints:0.5 :1.0 :0.5 :0.0];
}
return moveAnimation;
}
- (void)move {
NSDictionary *animations = [NSDictionary
dictionaryWithObject:[self moveAnimation]
forKey:@"frameOrigin" ];
[mover setAnimations:animations];
NSPoint origin = mover.frame.origin;
origin.x += NSWidth(mover.frame);
[mover.animator setFrameOrigin:origin];
}

 

分享到:
评论

相关推荐

    iOS核心动画高级技巧

    它包括Core Animation Layer System、Core Animation Layer Types、Core Animation Transitions以及Core Animation Timing等关键部分。理解这些组件如何协同工作是掌握高级技巧的基础。 二、自定义CALayer 1. **...

    iOS界面动画大全

    8. **Animation Timing**: 动画的时间曲线(timing function)可以改变动画的速度感,例如easeInEaseOut、linear、easeIn、easeOut等,可以使用CAMediaTimingFunction来定制。 9. **Group Animations**: 可以使用...

    IOS应用源码——动画.zip

    11. **Animation Timing Functions**: 控制动画的速度曲线也是很重要的一环,可以通过`CAMediaTimingFunction`调整动画的速度,如线性、缓入、缓出等,以实现更自然的动画效果。 以上就是iOS应用源码——动画.zip中...

    仿咻一咻动画

    5. **Transition和Animation Timing Function**:在CSS3中,transition用于单一属性的过渡效果,而animation则可以定义完整的动画序列。动画的节奏感可以通过animation-timing-function来调整,比如ease、linear、...

    核心动画编程指南

    此外,核心动画编程指南也涉及了如何使用Core Animation提供的关键帧动画(keyframe animations)、核心动画时间函数(core animation timing functions)、时间轴控制(timelines control)等高级特性。关键帧动画...

    模仿乐动力介绍页面第一屏动画效果.rar

    7. **Animation Timing Function**: 动画的节奏和速度曲线可以通过调整timing function来改变,如ease-in-out、linear等,以创造出不同的视觉感受。 8. **Keyframe Animations**: 使用@keyframes规则,可以定义动画...

    iOS动画进度球

    6. **Animation Timing Functions**:为了使动画更加自然流畅,我们可以自定义或选择内置的时间函数(如`easeInEaseOut`),控制动画的速度曲线。 7. **Layer Property Bindings**:通过KVC(Key-Value Coding)和...

    CSS3-animation(动画)_Animation_css_

    2. **animation 属性**: 用于应用动画,它是一个复合属性,包括多个子属性,如 animation-name、animation-duration、animation-timing-function 等。例如: ```css element { animation-name: example; ...

    使用animation翻页动画效果

    `animation`属性由多个子属性组成,包括`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-direction`、`animation-fill-mode`和...

    纯css3 animation动画属性点击loading加载动画

    `animation`属性是多个相关属性的简写形式,包括`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-direction`、`animation-fill...

    Core Animation动画例子

    6. **时间函数(Timing Functions)**: 时间函数决定了动画的速度曲线,如ease-in-out、linear等,可以调整动画的加速和减速效果。 7. **动画组(Animation Groups)**: 可以将多个动画组合成一个动画组,让...

    CSS3 animation属性制作逼真的大风车旋转动画

    它由多个子属性组成,包括`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-direction`、`animation-fill-mode`和`animation-...

    动画书籍][Animation.Books]Timing.for.Animation(动画时间的掌握).zip

    《Timing for Animation》是一本深度探讨动画时间控制的权威书籍,专为那些希望在动画制作领域深化理解的读者而设计。这本书涵盖了动画制作中的关键环节——时间运用,它对于创造逼真、生动的角色动态至关重要。在...

    Css3 animation---介绍如何实现css的动画

    `animation`属性是CSS3 Animation的核心,它是一个复合属性,可以包含多个子属性,如`animation-name`、`animation-duration`、`animation-timing-function`等。以下是一个完整的`animation`声明示例: ```css div ...

    css3弹力球动画animation属性制作3D弹力球弹跳动画效果

    它是一个复合属性,包含了多个相关的子属性,如`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-direction`、`animation-fill-...

    CSS3 animation动画

    `animation`属性是一个简写属性,用于设置多个与动画相关的属性,包括`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-...

    CSS3 animation超酷网页Loading加载进度条动画效果

    CSS3的animation属性是一组属性的简写形式,包括`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-direction`、`animation-fill...

    教你使用coreAnimation

    4. **Timing and Duration**: 动画的节奏和持续时间对整体效果有很大影响。你可以通过设置animation.duration来定义动画的总时长,animation.timingFunction来控制速度曲线,比如线性、Ease In、Ease Out等。此外,...

    css3-animation

    `animation`是一个简写属性,包括`animation-name`、`animation-duration`、`animation-timing-function`等子属性。例如: ```css .animatedElement { animation: fadeIn 2s ease-in-out; } ``` 这个例子将`...

    HTML5&CSS3网页制作:animationtimingfunction属性.pptx

    `animation-timing-function`属性是这个领域中的一个重要组成部分,它定义了动画执行过程中的速度变化曲线,从而影响元素从起始状态到结束状态过渡的方式。 `animation-timing-function`的基本语法如下: ```css ...

Global site tag (gtag.js) - Google Analytics