Swift - 用UIScrollView实现视差动画效果

效果

源码

https://github.com/YouXianMing/Swift-Animations

//
// MoreInfoView.swift
// Swift-Animations
//
// Created by YouXianMing on 16/8/18.
// Copyright © 2016年 YouXianMing. All rights reserved.
// import UIKit class MoreInfoView: UIView { var imageView : UIImageView! override init(frame: CGRect) { super.init(frame : frame) layer.borderWidth = 0.5
layer.borderColor = UIColor.blackColor().CGColor
layer.masksToBounds = true /*
* -------------- *
*-50->|-view-width-|<-50-*
* -------------- *
*/
let rect = frame
imageView = UIImageView(frame: CGRectMake(-, , rect.size.width + * , rect.size.height))
imageView.contentMode = .ScaleAspectFill
self.addSubview(imageView)
} required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented")
}
}
//
// ScrollImageViewController.swift
// Swift-Animations
//
// Created by YouXianMing on 16/8/18.
// Copyright © 2016年 YouXianMing. All rights reserved.
// import UIKit class ScrollImageViewController: FullTitleVisualEffectViewController, UIScrollViewDelegate { let viewTag : Int! =
var onceLinearEquation : Math!
var pictures : [UIImage]!
var scrollView : UIScrollView! override func setup() { super.setup() onceLinearEquation = Math(pointA: CGPointMake(, -), pointB: CGPointMake(contentView!.width, - ))
pictures = [UIImage]()
pictures.append(UIImage(named: "")!)
pictures.append(UIImage(named: "")!)
pictures.append(UIImage(named: "")!)
pictures.append(UIImage(named: "")!)
pictures.append(UIImage(named: "")!) scrollView = UIScrollView(frame: (contentView?.bounds)!)
scrollView.delegate = self
scrollView.pagingEnabled = true
scrollView.backgroundColor = UIColor.blackColor()
scrollView.showsHorizontalScrollIndicator = false
scrollView.bounces = false
scrollView.contentSize = CGSizeMake(CGFloat(pictures.count) * width, height)
contentView?.addSubview(scrollView) for i in ..< pictures.count { let showView = MoreInfoView(frame: CGRectMake(CGFloat(i) * width, , width, height))
showView.imageView.image = pictures[i]
showView.tag = viewTag + i
scrollView.addSubview(showView)
}
} func scrollViewDidScroll(scrollView: UIScrollView) { let X = scrollView.contentOffset.x for i in ..< pictures.count { let showView = scrollView.viewWithTag(viewTag + i) as! MoreInfoView
showView.imageView.x = onceLinearEquation.k * (X - CGFloat(i) * width) + onceLinearEquation.b
}
}
}

Swift - 用UIScrollView实现视差动画效果的更多相关文章

  1. Swift - 多个mask的动画效果

    Swift - 多个mask的动画效果 效果 源码 https://github.com/YouXianMing/Swift-Animations // // TranformFadeView.swi ...

  2. 【安卓高级】ViewPager视差动画效果

    在安卓开发中,是否遇见过一些很酷的视差动画效果,当ViewPager滑动下一页的时候,页面内的各种元素也能跟随滑动做位移效果,整体看起来非常有活力. 关键的PageTransformer PageTr ...

  3. Android ViewPager+属性动画 实现炫酷视差动画效果

    ViewPager有一个setPageTransform()方法可以实现很多酷炫的动画效果 先来个仿QQ的侧滑面板效果 vp.setPageTransformer(true, new PageTran ...

  4. Swift - 使用atlas图集实现动画效果(SpriteKit游戏开发)

    我们通常继承SKSpriteNode来实现游戏中的元素,除了可以使用图片作为纹理皮肤外.我们还可以使用动画纹理集来实现动画播放. 动画纹理集的制作也很简单,首先要有一套动画序列图,然后把它们放到一个文 ...

  5. Swift 添加到TableView实现动画效果

    let indexPath = NSIndexPath(forRow:0 ,inSection:0) self.tableView.insertRowsAtIndexPaths([indexPath] ...

  6. Swift - CALayer的contents属性动画

    Swift - CALayer的contents属性动画 效果 源码 https://github.com/YouXianMing/Swift-Animations // // LiveImageVi ...

  7. [Swift通天遁地]九、拔剑吧-(14)创建更美观的景深视差滚动效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  8. Swift 带有动画效果的TabBarItem

    额...貌似挺长时间没有总结新知识了,最近在看swift,之前swift刚出来的时候大体看了一遍,后来时间长了没看加之swift2.0做了比较大的调整,公司项目也不是用swift写的,也就没怎么看了, ...

  9. iOS开发——动画篇Swift篇&动画效果的实现

    Swift - 动画效果的实现   在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimation ...

随机推荐

  1. transform:rotate/旋转

    <!DOCTYPE html> <html> <head> <style> div { width:100px; height:75px; backgr ...

  2. Java第三阶段学习(十二、HttpServletRequest与HttpServletResponse)

    一.HttpServletRequest 1.概述: 我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和 ...

  3. L3-004 肿瘤诊断 dfs bfs

    在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环.给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积. 输入格式: 输入第一行给出4个正整数:M.N.L.T,其中M和N是每张切片的尺寸(即每张切片 ...

  4. 024 关于spark中日志分析案例

    1.四个需求 需求一:求contentsize的平均值.最小值.最大值 需求二:请各个不同返回值的出现的数据 ===> wordCount程序 需求三:获取访问次数超过N次的IP地址 需求四:获 ...

  5. 005.LVM删除

    一 删除LVM步骤 卸载挂载点 移除LV 移除VG 移除PV 删除配置文件 二 卸载挂载点 [root@kauai ~]# umount /dev/vg01/lv01 #先卸载挂载点 三 移除LV [ ...

  6. MVC+easyui,写个树

    前言:网上关于编写组织机构树的教程并不少,我第一次写树的时候也是在网上借鉴别人的技术,走了一些弯路写下了树.是因为这些教程都不是很全面,对于编程新手来说跳跃性太强.所以趁着闲暇时期,我用心的写个树,供 ...

  7. 跟厂长学PHP7内核(五):系统分析生命周期

    上篇文章讲述了模块初始化阶段之前的准备工作,本篇我来详细介绍PHP生命周期的五个阶段. 一.模块初始化阶段 我们先来看一下该阶段的每个函数的作用. 1.1.sapi_initialize_reques ...

  8. ApiPost自动化测试基础之:如何使用测试校验(测试用例)?

    我们在<ApiPost的环境变量的定义和使用>和<ApiPost自动化测试基础之:接口参数依赖的情景处理>分别讲解了ApiPost环境变量的定义.使用以及基于环境变量的接口参数 ...

  9. 网络数据包信息收集工具ferret-sidejack

    网络数据包信息收集工具ferret-sidejack   网络数据包传递用户的各种操作和对应的信息.但是由于各种数据混在一起,不利于渗透测试人员分析.Kali Linux提供了一款信息搜集工具ferr ...

  10. Xamarin iOS教程之编辑界面编写代码

    Xamarin iOS教程之编辑界面编写代码 Xamarin iOS的Interface Builder Interface Builder被称为编辑界面.它是一个虚拟的图形化设计工具,用来为iOS应 ...