iOS-小Demo--动画效果实例切换图片

一年春好处,不在浓芳,小艳疏香,最娇软<不良蛙>

动画切换图片的效果

上面是效果图:

  • 代码实现部分:
    定义两个属性
# 定义一个放照片的  UIImageView
@property (strong, nonatomic) UIImageView *OurImages;

# 记录当前展示的照片次序 (可以理解你正在展示的是第几张照片  从0 开始)
@property (assign, nonatomic) NSInteger currentIndex;

思路:

目的: 实现滑动切换照片
解决思路: 首先需要展示照片的 UIImageView -----> 其次要有展示的图片(我这是五张) -----> 通过左滑右滑切换展示的图片 -----> 同时要有动画效果

上代码:
# 创建 UIImageView
self.OurImages = [[UIImageView  alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self.view addSubview:self.OurImages];
    
// 图片会在 View 中显示  并且比例不变
    self.OurImages.contentMode = UIViewContentModeScaleAspectFill;
# 设置默认的照片  和 默认的次序   (这里要对应  第一张图片 对应下标(次序) 0)
 self.OurImages.image = [UIImage imageNamed:@"001 (1).jpg"];
 self.currentIndex = 0; 

# 创建 并 添加两个手势  左滑右滑
# 注意: 这个手势  默认属性direction(方向)只有向右滑动    所以要为左滑动更改下属性  向右是默认 可以不改
 UISwipeGestureRecognizer *left = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(leftAction:)];
  left.direction = UISwipeGestureRecognizerDirectionLeft;
   [self.view addGestureRecognizer:left];
 
 UISwipeGestureRecognizer *right = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightAction:)];
    [self.view addGestureRecognizer:right];
    ```

```code

# 左滑触及的方法 目的是 上一张照片 给自己定义的方法传参数标记1
- (void)leftAction:(UISwipeGestureRecognizer *)sender
{
    [self transitionAnimation:1];

}

# 右滑触及的方法 目的是 下一张照片 给自己定义的方法传参数标记0
- (void)rightAction:(UISwipeGestureRecognizer *)sender
{
    [self transitionAnimation:0];
}
上面是主题思路完成 下面就是完成细节的切换 实现滑动触及的方法细节
# 根据传入的参数  切换不同的照片
- (void)transitionAnimation:(BOOL)isNext
{
// 创建转场动画
    CATransition *trans = [[CATransition alloc] init];
    // 效果 支持的字段参考 上一篇动画的总结
    trans.type = @"cube";
    if (isNext)
    {
        trans.subtype = kCATransitionFromRight;
    }else
    {
        trans.subtype = kCATransitionFromLeft;
    
    }
// 动画持续时间   
 trans.duration = 1.0f;
// 调用得到照片的方法
    self.OurImages.image = [self getImage:isNext];
    
  [self.OurImages.layer addAnimation:trans forKey:@"切换照片"];
}
- (UIImage *)getImage:(BOOL)isNext
{
    if (isNext)
    {
        // 当 currentIndex = 1时候  (1+1)%5 = 2;  下一张
        self.currentIndex = (self.currentIndex +1)%5;
    }else
    {
        // 当 currentIndex = 1时候  (1-1+5)%5 = 0; 上一张
      self.currentIndex = (self.currentIndex - 1 + 5)%5;
    }

    // 往数组里面添加图片  图片名与下标名对应
    NSString *imageName = [NSString stringWithFormat:@"001 (%ld).jpg",self.currentIndex + 1];
    
    return [UIImage imageNamed:imageName];
}

动画总结参考:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,388评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,245评论 4 61
  • 人人都是自媒体的素人时代 互联网新技术及新平台的涌现,直播和短视频行业如打了鸡血一般,空前的火爆,由此也网生了不同...
    众筹行者阅读 412评论 0 1
  • 陈小冠幼儿园拼音已经学习到下面最好个程度了,我一直处于辅佐作业的学习状态,直到他奶奶说孩子老师说了他拼音学的不好,...
    木木sani阅读 655评论 0 1
  • 1、 微不足道的开头,往往暗藏一丝温柔。 初入初三,重新分班,放眼望去尽是陌生的面孔映入眼帘,寂静的教室一如从前,...
    安暖如夏m阅读 1,034评论 14 17