文档章节

转场动画

大魔王_K
 大魔王_K
发布于 2016/01/29 15:11
字数 393
阅读 22
收藏 2
点赞 1
评论 0
#import "ViewController.h"
#define IMAGE_COUNT 10//图片数量

@interface ViewController ()
{
    UIImageView *_imageView;
    int _current;
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    _current = 0;
    //定义一个图片控件
    _imageView = [[UIImageView alloc]initWithFrame:[UIScreen mainScreen].bounds];
    _imageView.contentMode = UIViewContentModeScaleAspectFill;
    _imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", _current]];
    [self.view addSubview:_imageView];
    
    //添加手势
    UISwipeGestureRecognizer *leftSwipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(leftSwipe:)];
    leftSwipeGesture.direction = UISwipeGestureRecognizerDirectionLeft;//设置手势方向
    [self.view addGestureRecognizer:leftSwipeGesture];
    
    UISwipeGestureRecognizer *rightSwipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(rightSwipe:)];
    rightSwipeGesture.direction = UISwipeGestureRecognizerDirectionRight;//设置手势方向
    [self.view addGestureRecognizer:rightSwipeGesture];}

- (void)leftSwipe : (UISwipeGestureRecognizer *)gesture
{
    [self transitionAnimation:YES];//YES表示下一张图片
}

- (void)rightSwipe : (UISwipeGestureRecognizer *)gesture
{
    [self transitionAnimation:NO];//NO表示上一张图片
}

#pragma mark 转场动画
- (void)transitionAnimation : (BOOL)isNext
{
    //1.创建动画对象
    CATransition * transition = [[CATransition alloc]init];
    //2.设置动画类型,对于苹果官方没有公开的动画类型只能使用字符串
    //cube                   立方体翻转效果
    //oglFlip                翻转效果
    //suckEffect             收缩效果
    //rippleEffect           水滴波纹效果
    //pageCurl               向上翻页效果
    //pageUnCurl             向下翻页效果
    //cameraIrisHollowOpen   摄像头打开效果
    //cameraIrisHollowClose  摄像头关闭效果
    transition.type = @"cube";
    
    //设置子类型(转场动画从什么方向)
    if (isNext) {
        transition.subtype = kCATransitionFromRight;
    }
    else{
        transition.subtype = kCATransitionFromLeft;
    }
    //设置动画时间
    transition.duration = 1.0;
    
    //设置转场后的新视图
    if (isNext) {
        //下一张图片
        _current = (_current + 1) % IMAGE_COUNT;
    }
    else{
        //上一张图片
        _current = (_current - 1 + IMAGE_COUNT) % IMAGE_COUNT;
    }
    _imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",_current]];
    //添加动画
    [_imageView.layer addAnimation:transition forKey:@"YC"];
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


© 著作权归作者所有

共有 人打赏支持
大魔王_K
粉丝 2
博文 19
码字总数 11255
作品 0
西安

暂无相关文章

如何使用serverchan微信推送告警

之前实现推送告警信息到微信的方法有如下几种: 1、通过企业公众号实现----收费: 2、通过QQ邮箱,在微信平台上开启收到邮件进行提醒; 3、第三方告警平台API,一般也是收费的; 不过最近看文...

问题终结者 ⋅ 10分钟前 ⋅ 0

TCP的RPC

RPC就是远程方法调用(Remote Process Call ),包含了客户端和服务端,涉及了对象的序列化传输。 1.服务端启动,注册远程调用的类2.客户端发送请求信息包含类、方法、参数的一些信息、序列化传...

Cobbage ⋅ 30分钟前 ⋅ 0

IOS-UI UI初步代码布局添加事件

ISO开发界面,UI是必须学习的一部分,其实很早之前想学来了,一直没有沉下心来学习。看到IOS的代码风格和布局就别扭的不行,跟java代码和android布局比较显得不是那么方便,所以一直到现在。...

京一 ⋅ 40分钟前 ⋅ 0

浅谈OpenDaylight的二次开发

OpenDaylight作为一款开源SDN网络控制器,依托于强大的社区支持以及功能特性,成为了目前主流的SDN网络控制器开发平台。在比较稳定的OpenDaylight Helium版本中,已经为开发者提供了大量的网...

wangxuwei ⋅ 50分钟前 ⋅ 0

API 开发中可选择传递 token 接口遇到的一个坑

在做 API 开发时,不可避免会涉及到登录验证,我使用的是jwt-auth 在登录中会经常遇到一个token过期的问题,在config/jwt.php默认设置中,这个过期时间是一个小时,不过为了安全也可以设置更...

等月人 ⋅ 50分钟前 ⋅ 0

Java NIO之文件处理

程序要操作本地操作系统的一个文件,可以分为以下三个部分: 对文件位置的操作 对文件的操作 对文件内容的操作 其中,对文件内容的操作在 Java NIO之Channel 中已经有了介绍,通过FileChann...

士别三日 ⋅ 55分钟前 ⋅ 0

Maven的pom.xml配置文件详解

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.......

小海bug ⋅ 今天 ⋅ 0

解决httpclient超时设置不生效的问题

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。 初始设置如下: [java] view plain copy //超时设置 RequestConfig re...

Mr_Tea伯奕 ⋅ 今天 ⋅ 0

过滤器Filter和拦截器HandlerInterceptor

过滤器 依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要...

hutaishi ⋅ 今天 ⋅ 0

Redis入门详解(转)

Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis应用场景 Redis总结 Redis简介: Redi...

xiaoyaoyoufang ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部