`

Chaining Animations

 
阅读更多
- (void)right {
-// photo1 is going to move to where photo2 is
NSPoint newOrigin = [photo2 frame].origin;
CABasicAnimation *animation = [self basicAnimationNamed:@"photo1" duration:1.0f];
animation.delegate = self;
 [photo1 setAnimations:
[NSDictionary dictionaryWithObject:animation forKey:@"frameOrigin" ]];
 [[photo1 animator] setFrameOrigin:newOrigin];
}

- (void) reset {
[photo1 setAnimations:nil];
 [photo2 setAnimations:nil];
 NSPoint newPhoto1Origin = NSMakePoint(0.0f, NSMidY([self frame]) -
- (NSHeight([photo1 bounds]) / 2.0f));
NSPoint newPhoto2Origin = NSMakePoint(NSMidX([self frame]) - (NSWidth([photo2 bounds]) / 2.0f), NSMidY([self frame]) - (NSHeight([photo2 bounds]) / 2.0f));

 [[photo1 animator] setFrameOrigin:newPhoto1Origin];
[[photo2 animator] setFrameOrigin:newPhoto2Origin];
 }

 

animation.delegate = self;

 

 

- (void)animationDidStop:(CAAnimation *)animation finished:(BOOL)flag {
  if(flag && [[animation valueForKey:@"name" ] isEqual:@"photo1" ]) {
  CABasicAnimation *photo2Animation =
 [self basicAnimationNamed:@"photo2" duration:animation.duration];
[photo2 setAnimations:[NSDictionary dictionaryWithObject:photo2Animation forKey:@"frameOrigin" ]];
NSPoint newPhoto2Origin = NSMakePoint(NSMaxX([self frame]) - [photo2 frame].size.width,
[photo2 frame].origin.y);
[[photo2 animator] setFrameOrigin:newPhoto2Origin];
   }
}

 

分享到:
评论

相关推荐

    Android-动画小结

    3. **属性链(Chaining Animations)** 可以通过`AnimatorSet`来组合多个`ObjectAnimator`,实现复杂的动画序列。`AnimatorSet.playTogether()`和`AnimatorSet.playSequentially()`方法可以控制动画的并行执行和顺序...

    Android代码-Choreographer

    Animate views easily by chaining animations, run them serially or in parallel. Download Download the latest AAR via Gradle: implementation 'zachinio.choreographer:choreographer:1.0.1' How to use To ...

    Fluent Animation – An incredible animation queue system v0.8

    Playing animations back-to-back and chaining them one after another can be frustrating using existing Unity packages. Fluent Animation is here to make it simple to execute a series of animations or ...

    swift-DaisyChain-一个微框架让UIView动画链接?变得超级简单

    在Swift中,DaisyChain框架利用了Swift语言的特性,如扩展(Extensions)和方法链(Method Chaining),来增强UIView类的功能。开发者可以像串起一串珍珠一样轻松地设置各种动画效果,而不需要编写复杂的嵌套代码块...

    Practical Game AI Programming

    You'll explore what methods and algorithms, such as possibility maps, Forward Chaining Plan, Rete Algorithm, Pruning Strategies, Wall Distances, and Map Preprocess Implementation should be used on ...

    Android代码-FancyShowCaseView

    Chaining multiple FancyShowCaseView instances Showing only one time Gradle Dependency Add this in your root build.gradle file (not your module build.gradle file): allprojects { r

    又一个很棒的 Swift 实现的动画框架.zip

    2. **链条(Chaining)**:动画的链条效应意味着一系列动画按照特定顺序依次执行。Swift的动画框架可能提供了简便的方法来链接多个动画,确保它们按预设顺序播放。这通常通过闭包和completion handlers来实现,确保...

    jquery初学者程序包,

    - **链式调用(Chaining)**:jQuery对象可以连续调用多个方法,因为每次方法调用都会返回jQuery对象本身。例如,`$("#myDiv").css("color", "red").slideUp()`会先设置元素颜色,再执行滑动隐藏。 2. **DOM操作*...

    jquery_chm.zip jquery中文参考

    - **链式操作(Chaining)**: jQuery方法返回的是jQuery对象,这使得多个操作可以连续进行,如`$("#element").hide().fadeIn()` - **事件处理(Event Handling)**: jQuery提供了统一的事件处理方式,如`$("#button...

    jQuery-apii

    - **链式调用(Chaining)**: jQuery对象的方法返回的是jQuery对象本身,这使得多个操作可以连续执行,提高代码的可读性和效率。 2. **DOM操作** - **DOM选择(Element Selection)**: `$(selector)`用于选取DOM...

    jquery开发Api

    - **链式调用(Chaining)**:jQuery方法返回的是jQuery对象,使得我们可以连续调用多个方法,提高了代码的可读性。 - **DOM操作(DOM Manipulation)**:包括元素的增删改查,如`$(selector).append()`用于在元素...

    jQuery外部调用弹窗代码.zip

    3. **方法链(Method Chaining)**:jQuery的对象返回自身,使得可以在一行代码中连续调用多个方法。例如,`$("#element").hide().fadeIn(1000)`会先隐藏元素,然后在1秒内渐显出来。 4. **动画(Animations)**:...

    jquery帮助文档,很好用

    2. **链式操作(Chaining)**:jQuery对象允许连续调用方法,这使得代码更加简洁。例如,`$("#element").css("color", "red").hide()`,先改变颜色再隐藏元素。 3. **DOM操作(DOM Manipulation)**:jQuery提供了...

    2_web开发_jquery_

    2. **链式操作(Chaining)**: jQuery对象可以连续调用多个方法,如`$("#myDiv").show().addClass("highlight")`,先显示ID为`myDiv`的元素,再添加`highlight`类。 3. **DOM操作(DOM Manipulation)**: jQuery...

    jquery中文手册

    - **链式调用(Chaining)**: 由于jQuery对象返回的是自身,因此可以连续调用多个方法,如`$("#element").addClass("highlight").css("color", "red")`。 - **DOM操作(DOM Manipulation)**: jQuery提供了丰富的...

    node开发指南

    关于“jQuery”,它的核心特性包括选择器(Selector)用于高效地查找DOM元素,链式调用(Chaining)使代码更简洁,以及强大的DOM操作API,如遍历(Traversing)、属性修改(Attributes)和事件处理(Events)。...

    jQuery点击空格键随机抽奖特效源码.zip

    首先,jQuery的核心特性包括选择器(Selectors)、链式操作(Chaining)、事件处理(Events)和动画(Animations)。在这个抽奖程序中,选择器将用于定位DOM元素,例如按钮或容器,以便监听和响应用户的空格键输入。...

    jquery笔记1

    2. **链式操作(Chaining)**: jQuery对象支持链式调用,这意味着一个方法调用的结果可以是另一个方法的输入。例如,`$("#myDiv").css("color", "red").html("Hello World!");`首先选取id为"myDiv"的元素,然后设置...

    Head First Jquery_code.rar

    4. **动画效果(Animations)**:jQuery的`.animate()`方法可以创建平滑的动画效果,改变CSS属性如宽度、高度、透明度等。 5. **Ajax交互(Ajax Interactions)**:jQuery的`.ajax()`或`.load()`函数使得异步数据...

    JQuery 帮助文档及js文件

    - **链式调用(Chaining)**: jQuery对象返回的是jQuery实例,允许连续调用多个方法,如 `$("#element").hide().fadeIn()`. - **DOM操作(DOM Manipulation)**: jQuery提供了一系列方法用于创建、修改和操作DOM...

Global site tag (gtag.js) - Google Analytics