animateWithDuration:animations:completion:

Creates an animation block object that can be used to set up keyframe-based animations for the current view.

Declaration

  • (void)animateKeyframesWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewKeyframeAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion

Parameters

  • duration

The duration of the overall animation, measured in seconds. If you specify a negative value or 0, changes are made immediately and without animations.

  • delay

Specifies the time (in seconds) to wait before starting the animation.

  • options

A mask of options indicating how you want to perform the animations. For a list of valid constants, see “UIViewKeyframeAnimationOptions”.

  • animations

A block object containing the changes to commit to the views. Typically, you call the addKeyframeWithRelativeStartTime:relativeDuration:animations: method one or more times from inside this block. You may also change view values directly if you want those changes to animate over the full duration. This block takes no parameters and has no return value. Do not use a nil value for this parameter.

  • completion

A block object to be executed when the animation sequence ends. This block has no return value and takes a single Boolean argument that indicates whether or not the animations finished before the completion handler was called. If the duration of the animation is 0, this block is performed at the beginning of the next run loop cycle. You can use a nil value for this parameter.

我一直不明白最后的completion什么用,参考中的回答者大概回答了。

意思是说你可以当你中断或者取消了一个动画,里面的completion会为FALSE。你要清楚,虽然取消了这个动画,但是completion block回调函数仍然会执行。如果你连接了动画序列,你想让这个序列停止的话,你只需要继续之前已经完成的动画。

如果你写一个游戏,预期是炸弹从屏幕飞过。那么你有一个动画来让炸弹移动,你的completion block写的是另外一个动画来展示炸弹爆炸,然后下面你可能调用一些方法来减分或者其他。

如果玩家点击了炸弹,你应该取消炸弹的移动动画,然后炸弹安然无恙的飞过。你之前的completion仍然会执行,所以你应该知道动画已经被执行结束或者被取消。

参考:http://stackoverflow.com/questions/8686922/what-exactly-does-bool-parameter-do-in-animatewithdurationanimationscompletion

时间: 2024-10-29 10:46:20

animateWithDuration:animations:completion:的相关文章

连续执行UIView的animateWithDuration:delay:options:animations:completion出现的问题

问题背景 自定义实现UIKeyboard的accessoryView的基本原理是根据UIKeyboard的frame来动态调整accessoryView的frame值,为了能达到accessoryView的平滑的变动,我们用UIView的类方法animateWithDuration:delay:options:animations:completion:来动态调整accessoryView的frame值 问题出现描述 我们根据通知UIKeyboardWillShowNotification来触发

UIViewController新方法的使用(transitionFromViewController:toViewController:duration:options:animations:completion:)

iOS5中,UIViewController新添加了几个方法: - (void)addChildViewController:(UIViewController *)childController NS_AVAILABLE_IOS(5_0); - (void) removeFromParentViewController NS_AVAILABLE_IOS(5_0); - (void)transitionFromViewController:(UIViewController *)fromView

控件总结

2014年12月11日星期四 13:10 什么是控件 控件就是系统提供给我们的积木块,系统给我们提供的积 木块形状已经确定,必须遵守某种行为来使用.当然我们 也可以自己造积木块 UIView 所有能看的见的都是view 1) CGRect frame = {CGOrigin, CGSize}; CGOrigin = {x, y}; // 坐标是相对的 CGSize = {width, height}; 2) CGPoint center = {x, y}; //view中点的坐标 3) CGRe

View Programming Guide for iOS 视图编程指南 - iOS

1 有关 Windows and Views 每个应用都至少有一个 window 和一个 view. 1.1 添加额外的 Window 一般在有外界显示设备的时候才需要添加额外的 window 下面的代码举了一个例子,这里假定对象实现了方法 externalWindow,externalWindow 存储一个 window 的引用 - (void)configureExternalDisplayAndShowWithContent:(UIViewController*)rootVC { // C

iOS UIKit:animation

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/css/cuteeditor.css); UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏.产生流畅的动画效果,进而改善用户体验.为了当UIView属性值发生改变时就形成动画,需要将这些属性绑定到animation block中.其中在iOS4.0及之后可以使用block对象,而在之前只能使用

移动开发(IOS) – UIKit框架

1.UIView 1.1.所有 UI 控件都继承自 UIView. 1.2.每一个 UIView 都是一个容器,可以容纳其他 UIView.其中容器视图被称为父视图,而被包含的视图或者控件被成为子视图或者子控件. 1.3.视图对应的文件通常是 storyboard 或者 xib 文件.在许多 iOS 应用程序中,通常不必为视图编写任何代码. 1.4.UIView 负责界面的显示. 1.5.常用属性: superview 获得自己的父控件对象 subviews 获得自己的所有子控件对象 一个视图最

(转发)IOS动画中的枚举UIViewAnimationOptions

若本帖转自(博客园·小八究):http://www.cnblogs.com/xiaobajiu/p/4084747.html 可怜目前天朝搜不到什么有价值的东西方便学习,在这里方便初学者. 首先这个枚举属于UIViewAnimation.我们经常使用的函数 是 [UIView animateWithDuration: animations:^{} completion:^(BOOL finished) {}];和[UIView animateWithDuration: animations:^{

[New learn]动画-基于UIView

原文:https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html 代码:https://github.com/xufeng79x/ViewBaseAnimation 1.简介 Animation,源于拉丁语,意为给无生命的物体注入灵魂. 动画可以为app应用增色不少,提高用户体验. 我们一般使用UIK

iOS中如何创建一个滑出式导航面板(1)

本文将介绍如何创建类似Facebook和Path iOS程序中的滑出式导航面板. 向右滑动 滑出式设计模式可以让开发者在程序中添加常用的导航功能,又不会浪费屏幕上宝贵的空间.用户可以在任意时间滑出导航面板,并且还可以看到当前屏幕上显示的内容. 现在,互联网上有些库已经内置滑出式设计模式,比如John-Lluch开发的SWRevealViewController.如果你在寻找更加快捷和简单的方法,那么使用SWRevealViewController库可能是一个很不错的方法. 不过,如果你是一名DI