ios手势复习值之换图片-转场动画(纯代码)
时间:2022-04-26
本文章向大家介绍ios手势复习值之换图片-转场动画(纯代码),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
目标:实现通过手势进行图片的切换 通过左扫右扫 来实现(纯代码)
添加三个属性 1uiImageView 用来显示图片的view
2 index 用来表示图片的索引
3 ISLeft 判断是不是向左滑
下边是详细的代码:
- (void)viewDidLoad {
[super viewDidLoad];
self.index = 0;
self.ISLeft = YES;
_imageView = [[UIImageView alloc]initWithFrame:self.view.frame];
// _imageView.backgroundColor = [UIColor redColor];
_imageView.contentMode = UIViewContentModeScaleAspectFit;//合适的大小
self.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%ld.png",_index]];
[self.view addSubview:_imageView];
//用户交互设置
self.imageView.userInteractionEnabled = YES;
//添加扫动得手势
UISwipeGestureRecognizer *swipL = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swip:)];
swipL.direction = UISwipeGestureRecognizerDirectionLeft;
[self.imageView addGestureRecognizer:swipL];
UISwipeGestureRecognizer *swipR = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swip:)];
swipR.direction = UISwipeGestureRecognizerDirectionRight;
[self.imageView addGestureRecognizer:swipR];
}
设置转场动画 :在手势里边进行实现
手势的实现以及转场动画:
-(void)swip:(UISwipeGestureRecognizer *)sender
{
if(sender.direction == UISwipeGestureRecognizerDirectionLeft)
{
if(self.index>=0)
{
if(self.index>0)
{
self.index--;
}
else
{
self.index =3;
}
self.ISLeft = YES;
}
}
else
{
self.ISLeft = NO;
if(self.index<3)
{
self.index++;
if(self.index ==3)
{
self.index =0;
}
}
}
//转场动画
CATransition *trans = [[CATransition alloc]init];
//转场动画的类型
trans.type =@"push";
//判断是不是向左滑
if(self.ISLeft)
{
trans.subtype = kCATransitionFromTop;
}
else
{
trans.subtype = kCATransitionFromBottom;
}
trans.duration = 0.5f;
[self.imageView.layer addAnimation:trans forKey:@"trans"];
//切换图画
self.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%ld",_index]];
}
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 一文搞懂高频面试题之限流算法,从算法原理到实现,再到对比分析
- TRTC Android端开发接入学习之实现语音通话(六)
- Shell脚本加密经验分享
- python提示每天债券打新
- Python3下基于Scapy库完成网卡抓包解析
- pandas:解决groupby().apply()方法打印两次
- pandas:字段值插入数据表第一行的解决办法
- Recommending items to more than a billion people(面向十亿级用户的推荐系统)
- pandas:对字符串类型做差分比较
- pandas:由列层次化索引延伸的一些思考
- 远程过程调用 Java RMI 技术 远程控制
- Real-time Xenomai 3 example 1
- Electron 常见问题收录II
- SQL性能调优技巧
- Linux查看CUDA版本以及cudnn版本号