使用UIView动画函数实现转场动画——单视图
+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;
 
参数说明:
–duration:动画的持续时间
–view:需要进行转场动画的视图
–options:转场动画的类型
–animations:将改变视图属性的代码放在这个block中
–completion:动画结束后,会自动调用这个block
 

具体实例如下:

实现功能:还是往工程中导入5张图片素材,创建图像视图控件,然后通过向左或向右扫动手势实现图像视图中图片的轮换,即实现转场动画。

代码如下:

//导入图片素材

//声明属性

  1. #import "ViewController.h"
  2.  
  3. @interface ViewController ()
  4. @property (strong,nonatomic)UIImageView *imageView;//图像视图
  5. @property (assign,nonatomic)NSInteger index; //当前图片的索引
  6. @end

//初始化,创建图像视图控件并设置图片,同时创建扫动手势,添加扫动事件

  1. - (void)viewDidLoad {
  2. [super viewDidLoad];
  3.  
  4. //设置当前图片为第一张
  5. self.index = 1;
  6.  
  7. //初始化图像视图
  8. self.imageView = [[UIImageView alloc]initWithFrame:self.view.frame];
  9. self.imageView.contentMode = UIViewContentModeScaleAspectFit;
  10. [self.imageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"s%ld.jpg",self.index]]];
  11.  
  12. //允许图像视图进行用户交互
  13. self.imageView.userInteractionEnabled = YES;
  14. [self.view addSubview:self.imageView];
  15.  
  16. //创建扫动手势
  17. UISwipeGestureRecognizer *leftswipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];
  18. //设置扫动方向为向左扫
  19. leftswipe.direction = UISwipeGestureRecognizerDirectionLeft;
  20. //添加扫动手势
  21. [self.imageView addGestureRecognizer:leftswipe];
  22.  
  23. //创建扫动手势
  24. UISwipeGestureRecognizer *rightswipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];
  25. //设置扫动方向为向右扫
  26. rightswipe.direction = UISwipeGestureRecognizerDirectionRight;
  27. //添加扫动手势
  28. [self.imageView addGestureRecognizer:rightswipe];
  29. }

//处理扫动手势事件,进行转场动画的创建并执行动画

  1. #pragma mark -扫动手势
  2. -(void)swipe:(UISwipeGestureRecognizer *)sender
  3. {
  4. //根据手势的方向改变图片的索引,一共5张图片
  5. if (sender.direction == UISwipeGestureRecognizerDirectionLeft)//向左扫
  6. {
  7. if (self.index > )
  8. {
  9. self.index--;
  10. }
  11. else
  12. {
  13. self.index = ;
  14. }
  15. }
  16. else //向右扫
  17. {
  18. if (self.index <)
  19. {
  20. self.index++;
  21. }
  22. else
  23. {
  24. self.index = ;
  25. }
  26. }
  27. //使用block函数添加UIView单视图转场动画
  28. [UIView animateWithDuration:1.0f animations:^{
  29. [self.imageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"s%ld.jpg",self.index]]];
  30. } completion:nil];
  31. }

演示结果如下:

没扫动手势一次,图片就轮换一次,即转场显示的图片依次为:

 

 

iOS:UIView的block函数实现转场动画---单视图的更多相关文章

  1. iOS:UIView的block函数实现转场动画---双视图

    使用UIView动画函数实现转场动画——双视图 + (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView durati ...

  2. ios中在uiNavigationcontroller中做转场动画

    1:了解,当创建一个UINavigationcontroller中时,当创建一个子视图控制器压入uiNavigationController中,其中里面的view也别加入UINavigationcon ...

  3. CATransition-转场动画

    CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果.iOS比Mac OS X的转场动画效果少一点 UINavigationController就是通过CATrans ...

  4. iOS 转场动画核心内容

    CATransition——转场动画 CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果.iOS比Mac OS X的转场动画效果少一点. ...

  5. iOS开发基础知识:Core Animation(核心动画)

    Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能. Core A ...

  6. ios uiview封装动画(摘录)

    iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...

  7. ios基础动画、关键帧动画、动画组、转场动画等

    概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...

  8. iOS开发UI篇—核心动画(转场动画和组动画)

    转自:http://www.cnblogs.com/wendingding/p/3801454.html iOS开发UI篇—核心动画(转场动画和组动画) 一.转场动画简单介绍 CAAnimation的 ...

  9. iOS转场动画

    文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(转场动画和组动画) iOS开发UI篇—核心动画(转场动画和组动画) 一.转场动画简单介绍 CAAnimation的子类,用于 ...

随机推荐

  1. 基于.net mvc的校友录(六、codefirst的使用以及班级模块的关键部分实现)

    通过EF将新用户存入数据库 这里,探讨一下如何使用EF的code first将数据存入数据库,以及如何对用户的密码进行md5加密与验证.下面是用户登陆的前台代码. @using (Html.Begin ...

  2. C# 微信公众号

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  3. jQuery多库共存处理

    jQuery多库共存处理(来自慕课网) 多库共存换句话说可以叫无冲突处理. 总的来说会有2种情况会遇到: 1.$太火热,jQuery采用$作为命名空间,不免会与别的库框架或者插件相冲突. 2.jQue ...

  4. ORM 框架

    1.Dapper 2.Entity Framework(EF) http://www.cnblogs.com/n-pei/archive/2011/09/06/2168433.html

  5. 解决jquery-easyui1.3.3 combobox 多选模式不兼容IE8问题

    扩展Array的原型对象,加入indexOf方法 if(!Array.prototype.indexOf){    Array.prototype.indexOf = function(target) ...

  6. [转]如何写出高效能TSQL -深入浅出SQL Server Relational Engine (含 SQL 2014 in-memory Engine)

    [转]如何写出高效能TSQL -深入浅出SQL Server Relational Engine (含 SQL 2014 in-memory Engine) http://blogs.technet. ...

  7. Leetcode#99 Recover Binary Search Tree

    原题地址 中序遍历二叉搜索树,正常情况下所有元素都应该按递增排列,如果有元素被交换,则会出现前面元素大于后面的情况,称作反序.由于交换了两个节点,所以通常会有两处反序,但如果是两个相邻节点发生了交换, ...

  8. linux install

    http://www.ubuntu.org.cn/index_kylin 先在官网下个Ubuntu  是个iso 然后下个UltraISO 是个软件 插好空u盘 打开软件 在菜单栏上 点击 文件-&g ...

  9. mysql导出导入某张表

    一般表数据少的话都用图形界面了,看着比较方便. 如果表中数据比较多,用图形界面极容易卡死,这个时候就要用到命令行了. 用命令行导出导入大量数据还是比较快的,方法如下: 导出库db1中的表table1: ...

  10. Unity3D 批量图片资源导入设置

    原地址:http://blog.csdn.net/asd237241291/article/details/8433548 创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:[] 本 ...