- (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];
}
}
分享到:
相关推荐
3. **属性链(Chaining Animations)** 可以通过`AnimatorSet`来组合多个`ObjectAnimator`,实现复杂的动画序列。`AnimatorSet.playTogether()`和`AnimatorSet.playSequentially()`方法可以控制动画的并行执行和顺序...
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 ...
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框架利用了Swift语言的特性,如扩展(Extensions)和方法链(Method Chaining),来增强UIView类的功能。开发者可以像串起一串珍珠一样轻松地设置各种动画效果,而不需要编写复杂的嵌套代码块...
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 ...
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
2. **链条(Chaining)**:动画的链条效应意味着一系列动画按照特定顺序依次执行。Swift的动画框架可能提供了简便的方法来链接多个动画,确保它们按预设顺序播放。这通常通过闭包和completion handlers来实现,确保...
- **链式调用(Chaining)**:jQuery对象可以连续调用多个方法,因为每次方法调用都会返回jQuery对象本身。例如,`$("#myDiv").css("color", "red").slideUp()`会先设置元素颜色,再执行滑动隐藏。 2. **DOM操作*...
- **链式操作(Chaining)**: jQuery方法返回的是jQuery对象,这使得多个操作可以连续进行,如`$("#element").hide().fadeIn()` - **事件处理(Event Handling)**: jQuery提供了统一的事件处理方式,如`$("#button...
- **链式调用(Chaining)**: jQuery对象的方法返回的是jQuery对象本身,这使得多个操作可以连续执行,提高代码的可读性和效率。 2. **DOM操作** - **DOM选择(Element Selection)**: `$(selector)`用于选取DOM...
- **链式调用(Chaining)**:jQuery方法返回的是jQuery对象,使得我们可以连续调用多个方法,提高了代码的可读性。 - **DOM操作(DOM Manipulation)**:包括元素的增删改查,如`$(selector).append()`用于在元素...
3. **方法链(Method Chaining)**:jQuery的对象返回自身,使得可以在一行代码中连续调用多个方法。例如,`$("#element").hide().fadeIn(1000)`会先隐藏元素,然后在1秒内渐显出来。 4. **动画(Animations)**:...
2. **链式操作(Chaining)**:jQuery对象允许连续调用方法,这使得代码更加简洁。例如,`$("#element").css("color", "red").hide()`,先改变颜色再隐藏元素。 3. **DOM操作(DOM Manipulation)**:jQuery提供了...
2. **链式操作(Chaining)**: jQuery对象可以连续调用多个方法,如`$("#myDiv").show().addClass("highlight")`,先显示ID为`myDiv`的元素,再添加`highlight`类。 3. **DOM操作(DOM Manipulation)**: jQuery...
- **链式调用(Chaining)**: 由于jQuery对象返回的是自身,因此可以连续调用多个方法,如`$("#element").addClass("highlight").css("color", "red")`。 - **DOM操作(DOM Manipulation)**: jQuery提供了丰富的...
关于“jQuery”,它的核心特性包括选择器(Selector)用于高效地查找DOM元素,链式调用(Chaining)使代码更简洁,以及强大的DOM操作API,如遍历(Traversing)、属性修改(Attributes)和事件处理(Events)。...
首先,jQuery的核心特性包括选择器(Selectors)、链式操作(Chaining)、事件处理(Events)和动画(Animations)。在这个抽奖程序中,选择器将用于定位DOM元素,例如按钮或容器,以便监听和响应用户的空格键输入。...
2. **链式操作(Chaining)**: jQuery对象支持链式调用,这意味着一个方法调用的结果可以是另一个方法的输入。例如,`$("#myDiv").css("color", "red").html("Hello World!");`首先选取id为"myDiv"的元素,然后设置...
4. **动画效果(Animations)**:jQuery的`.animate()`方法可以创建平滑的动画效果,改变CSS属性如宽度、高度、透明度等。 5. **Ajax交互(Ajax Interactions)**:jQuery的`.ajax()`或`.load()`函数使得异步数据...
- **链式调用(Chaining)**: jQuery对象返回的是jQuery实例,允许连续调用多个方法,如 `$("#element").hide().fadeIn()`. - **DOM操作(DOM Manipulation)**: jQuery提供了一系列方法用于创建、修改和操作DOM...