让图片左右缓慢移动的MoveView

效果:

源码:

MoveView.h 与 MoveView.m

//
//  MoveView.h
//  AnimationView
//
//  Created by XianMingYou on 15/1/28.
//  Copyright (c) 2015年 XianMingYou. All rights reserved.
//

#import <UIKit/UIKit.h>typedef enum : NSUInteger {MV_RIGHT = 0x19871220, // 开始时候向右移动MV_LEFT,               // 开始时候向左移动
} EStartMoveDirection;@interface MoveView : UIView@property (nonatomic) CGFloat               animationDuration; // 移动动画持续的时间
@property (nonatomic) EStartMoveDirection   direction;         // 起始移动的方向(默认值向右)
@property (nonatomic, strong) UIImage      *image;             // 输入的图片/***  创建出view*/
- (void)buildView;/***  开始动画*/
- (void)doAnimation;/***  透明百分比**  @param percent 百分比(0 ~ 1)*/
- (void)alphaPercent:(CGFloat)percent;@end

//
//  MoveView.m
//  AnimationView
//
//  Created by XianMingYou on 15/1/28.
//  Copyright (c) 2015年 XianMingYou. All rights reserved.
//

#import "MoveView.h"@interface MoveView ()@property (nonatomic, strong) UIImageView *imageView;@property (nonatomic) CGRect  startFrame; // 起始frame值
@property (nonatomic) CGRect  endFrame;   // 结束frame值@end@implementation MoveView- (void)buildView {// 添加遮罩self.layer.masksToBounds = YES;// 如果没有图片,则直接退出if (self.image == nil) {return;}// 获取图片高度CGFloat height         = self.frame.size.height;CGSize imageSize       = self.image.size;CGFloat imageViewWidth = height / imageSize.height * imageSize.width;// 获取到了尺寸self.imageView       = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, imageViewWidth, height)];self.imageView.image = self.image;// 获取初始尺寸self.startFrame = self.imageView.frame;self.endFrame   = CGRectMake(self.frame.size.width - self.imageView.frame.size.width, 0, imageViewWidth, height);[self addSubview:self.imageView];
}- (void)doAnimation {// 获取默认值if (self.direction != MV_RIGHT && self.direction != MV_LEFT) {self.direction = MV_RIGHT;}if (self.direction == MV_RIGHT) {self.imageView.frame = self.startFrame;} else {self.imageView.frame = self.endFrame;}// 获取动画时间self.animationDuration = (self.animationDuration <= 0 ? 10.f : self.animationDuration);// 开始动画
    [self startAnimation];
}- (void)alphaPercent:(CGFloat)percent {self.alpha = percent;
}- (void)startAnimation {if (self.direction == MV_RIGHT) {[UIView animateWithDuration:self.animationDurationanimations:^{self.imageView.frame = self.endFrame;} completion:^(BOOL finished) {[UIView animateWithDuration:self.animationDurationanimations:^{self.imageView.frame = self.startFrame;} completion:^(BOOL finished) {[self startAnimation];}];}];} else {[UIView animateWithDuration:self.animationDurationanimations:^{self.imageView.frame = self.startFrame;} completion:^(BOOL finished) {[UIView animateWithDuration:self.animationDurationanimations:^{self.imageView.frame = self.endFrame;} completion:^(BOOL finished) {[self startAnimation];}];}];}
}@end

控制器源码:

//
//  ViewController.m
//  MoveView
//
//  Created by YouXianMing on 15/1/28.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import "ViewController.h"
#import "MoveView.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// 背景移动的图MoveView *moveView         = [[MoveView alloc] initWithFrame:self.view.bounds];moveView.image             = [UIImage imageNamed:@"1.jpg"];moveView.animationDuration = 15;moveView.direction         = MV_RIGHT;[moveView buildView];[moveView doAnimation];[self.view addSubview:moveView];
}@end

核心要点:

让图片左右缓慢移动的MoveView相关推荐

  1. html的悬停图片缓慢放大,css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)...

    本篇文章主要给大家介绍当鼠标滑过图片时实现放大效果的具体方法. 当我们在浏览各大电商网站时,最常见的图片动态效果,应该就是鼠标移入图片即悬停在图片时出现放大的效果了.实现这样的动态效果主要是为了突出产 ...

  2. css改变鼠标图片大小,CSS实现鼠标经过图片上图片等比缩放效果(代码实例)

    本篇文章给大家带来的内容是关于如何使用CSS实现鼠标经过图片上图片缩放(缓慢变化,有过渡效果,缩放的过程是有动画过渡的)效果,主要用到CSS transform属性,css3 transition属性 ...

  3. 【爬虫实战】手把手教你使用python爬取美女图片

    本文目录 写作缘起 上代码 思路分析 效果展示 写在最后 写作缘起 用python爬虫实现的图片资源下载器,一页页下载图片过于缓慢,当我们要欣赏一些好看的图片时一页页翻太复杂了,干脆写一个图片下载器 ...

  4. 安卓复杂滑动案例 自定义behavior源码分析 实现头布局图片的缩放透明度变化,RecycleView的滑动布局,坐标变化

    #复杂滑动案例 * 上方图片放大, * 透明 * 输入框,不断增大     * 变色 * 滑动的时候,条目不会改变.     * 再滑的时候,条目滑动 #  * 1,让rv居于头部的下方     * ...

  5. 原生javascript实现图片左右平滑轮播效果(思路分析+代码)

    效果截图: 思路:  1 准备工作 1 通过html和css实现图片水平布局(可以在main里面设置overflow=scrollleft,更好的观察图片移动的轨迹) 2 获取需要操作的对象 3 设置 ...

  6. android抖音点赞动画,iOS仿抖音点赞动画、波浪图、主张图、3D旋转、图片处理、播放器等源码...

    iOS精选源码 iOS优质博客 一:介绍在项目中遇到数据展示需求时,往往会通过,以列表的形式展示出数据或者以表格的形式展示.但是并不能直观的观察数据的变化,如果通过图表的形式来展示,就可以更快捷的获取 ...

  7. iOS仿抖音点赞动画、波浪图、主张图、3D旋转、图片处理、播放器等源码 1

    iOS精选源码 iOS 一个异步渲染TextKit 写个女朋友的生日礼物codeGift 3D旋转 仿抖音小视频点赞动画 高德地图SDK二次封装,完美适配iOS11. iOS图表二次定制 - 波浪折线 ...

  8. CSS sprites

    CSS Sprites 1.简介 CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许将一个页面涉及到的所有零星图片都包含到一张大图中, 利用CSS的"back ...

  9. VS2015--win32project配置的一些想法之在 Visual Studio 2015 中进行调试的同一时候分析性能...

    出处: https://msdn.microsoft.com/zh-cn/magazine/dn973013(en-us).aspx 很多开发商花了绝大多数时间获取应用程序才干正常发挥作用.更少的时间 ...

  10. css划上去变长,Css3如何实现鼠标移上变长特效?(图文+视频)

    本篇文章主要给大家介绍用css3实现鼠标移入变长效果的方法. 在前端页面设计中,css的功能是异常强大的,只要运用好它,你能实现很多网站各种精彩的动态效果.那么在之前的文章中也给大家分享介绍了一些用c ...

最新文章

  1. CSS3 稳固而知新: 居中
  2. 作为开发人员,你都听产品经理的,做的累不累?
  3. windows系统环境变量过长解决方案(PATH too long installer unable to modify Path)
  4. wampserver一系列问题总结
  5. java junit mock_使用Mockito进行Java的Mock测试
  6. RabbitMQ从安装到深入
  7. 局域网网络风暴检测工具_交换机网络术语汇总
  8. Java加权负载均衡策略
  9. FR公式形态定义及运用范例
  10. scrapy-redis3
  11. 袁玉玮:简介人工智能在基金界的应用现状(四)
  12. 微信小程序——mhzqx点餐系统(包含前端,后台及数据库表)
  13. php mvc cms企业站,HongCMS中英文企业网站系统
  14. 明尼苏达计算机科学与工程,2019上海软科世界一流学科排名计算机科学与工程专业排名明尼苏达大学双城分校排名第101-150...
  15. java单继承多实现_单继承,多实现
  16. 学习资料 AND ORR
  17. Torch安装及使用
  18. 史上官场吃喝风:与送礼一样成为通用的规则
  19. html标签outclick,vue自定义指令(Directive中的clickoutside.js)的理解
  20. 关系数据模型的三个组成部分(关系数据模型的三个组成部分)

热门文章

  1. 重庆计算机一级考试在线做,全国(重庆考区)计算机一级考试教程.doc
  2. pb中的tounicode 函数_历年高考数学的必考热点三角函数,2020高考生,你会了吗?...
  3. pythonATM,购物车项目实战2,主函数入口
  4. 二、Nginx 反向代理配置初学个人理解
  5. while循环python输入质数_Python学习之[while]循环
  6. webservice 接口配置_springboot整合WebService简单版
  7. Mysql-mmm配置全自动切换主从关系和读写分离
  8. js里获取表单输入值进行比对的方法
  9. oracle创建dblink问题
  10. linux下完全删除mysql