使用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张图片素材,创建图像视图控件,然后通过向左或向右扫动手势实现图像视图中图片的轮换,即实现转场动画。

代码如下:

//导入图片素材

//声明属性

#import "ViewController.h"

@interface ViewController ()
@property (strong,nonatomic)UIImageView *imageView;//图像视图
@property (assign,nonatomic)NSInteger index; //当前图片的索引
@end

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

- (void)viewDidLoad {
[super viewDidLoad]; //设置当前图片为第一张
self.index = 1; //初始化图像视图
self.imageView = [[UIImageView alloc]initWithFrame:self.view.frame];
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
[self.imageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"s%ld.jpg",self.index]]]; //允许图像视图进行用户交互
self.imageView.userInteractionEnabled = YES;
[self.view addSubview:self.imageView]; //创建扫动手势
UISwipeGestureRecognizer *leftswipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];
//设置扫动方向为向左扫
leftswipe.direction = UISwipeGestureRecognizerDirectionLeft;
//添加扫动手势
[self.imageView addGestureRecognizer:leftswipe]; //创建扫动手势
UISwipeGestureRecognizer *rightswipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];
//设置扫动方向为向右扫
rightswipe.direction = UISwipeGestureRecognizerDirectionRight;
//添加扫动手势
[self.imageView addGestureRecognizer:rightswipe];
}

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

#pragma mark -扫动手势
-(void)swipe:(UISwipeGestureRecognizer *)sender
{
//根据手势的方向改变图片的索引,一共5张图片
if (sender.direction == UISwipeGestureRecognizerDirectionLeft)//向左扫
{
if (self.index > )
{
self.index--;
}
else
{
self.index = ;
}
}
else //向右扫
{
if (self.index <)
{
self.index++;
}
else
{
self.index = ;
}
}
//使用block函数添加UIView单视图转场动画
[UIView animateWithDuration:1.0f animations:^{
[self.imageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"s%ld.jpg",self.index]]];
} completion:nil];
}

演示结果如下:

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

 

 

最新文章

  1. Linux搭建Nginx
  2. 字典NSDictionary以及NSMutableDictionary的用法总结
  3. “北航Clubs”功能规格说明书
  4. jquery显示隐藏toggle
  5. [shell基础]——I/O重定向
  6. 获取枚举Description的Name
  7. (1) 一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串
  8. 【转】Android中自动连接到指定SSID的Wi-Fi
  9. [问题解决]linux sudo xxx:command not found
  10. ARM开发板链接shell
  11. Linux 中Ctrl + s 的作用
  12. Source Code Review
  13. Random-Forest-Python
  14. PhoneGap和Cordova应该用哪一个?
  15. C++ Opencv 自写函数实现膨胀腐蚀处理
  16. fabric 更详尽的用法
  17. 可以用到的XSS跨站语句
  18. Eclipse中git上如何把自己的分支保存到远端
  19. AngularJS订阅API服务
  20. Asp.net2.0之自定义控件ImageButton

热门文章

  1. “我爱淘”第二冲刺阶段Scrum站立会议2
  2. Web前端技能
  3. ios应运程序的五种状态
  4. ueditor:原谅我这一生不羁放纵爱独特
  5. win8.1 cygwin编译java轻量虚拟机avian
  6. Unity的物理引擎是如何实现碰撞的呢?
  7. 前端之JavaScript第四天学习(10)-JavaScript-运算符
  8. Portion of class Throwable’s inheritance hierarchy
  9. HDU 5593 ZYB&#39;s Tree 树形dp
  10. frequentism-and-bayesianism-chs-iv