Swift - 用UIScrollView实现视差动画效果
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实现视差动画效果的更多相关文章
- Swift - 多个mask的动画效果
Swift - 多个mask的动画效果 效果 源码 https://github.com/YouXianMing/Swift-Animations // // TranformFadeView.swi ...
- 【安卓高级】ViewPager视差动画效果
在安卓开发中,是否遇见过一些很酷的视差动画效果,当ViewPager滑动下一页的时候,页面内的各种元素也能跟随滑动做位移效果,整体看起来非常有活力. 关键的PageTransformer PageTr ...
- Android ViewPager+属性动画 实现炫酷视差动画效果
ViewPager有一个setPageTransform()方法可以实现很多酷炫的动画效果 先来个仿QQ的侧滑面板效果 vp.setPageTransformer(true, new PageTran ...
- Swift - 使用atlas图集实现动画效果(SpriteKit游戏开发)
我们通常继承SKSpriteNode来实现游戏中的元素,除了可以使用图片作为纹理皮肤外.我们还可以使用动画纹理集来实现动画播放. 动画纹理集的制作也很简单,首先要有一套动画序列图,然后把它们放到一个文 ...
- Swift 添加到TableView实现动画效果
let indexPath = NSIndexPath(forRow:0 ,inSection:0) self.tableView.insertRowsAtIndexPaths([indexPath] ...
- Swift - CALayer的contents属性动画
Swift - CALayer的contents属性动画 效果 源码 https://github.com/YouXianMing/Swift-Animations // // LiveImageVi ...
- [Swift通天遁地]九、拔剑吧-(14)创建更美观的景深视差滚动效果
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Swift 带有动画效果的TabBarItem
额...貌似挺长时间没有总结新知识了,最近在看swift,之前swift刚出来的时候大体看了一遍,后来时间长了没看加之swift2.0做了比较大的调整,公司项目也不是用swift写的,也就没怎么看了, ...
- iOS开发——动画篇Swift篇&动画效果的实现
Swift - 动画效果的实现 在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimation ...
随机推荐
- TcxGrid标题头 字体加粗
- hdu 6118度度熊的交易计划(费用流)
度度熊的交易计划 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- extjs6入门:用sencha cmd搭建简单的extjs6项目
开发准备 1.sencha cmd安装 2.extjs6.0.0 gpl正式版下载,地址:https://www.sencha.com/legal/gpl/ ,解压ext-6.0.0-gpl.zip ...
- Zookeeper+Curator 分布式锁
本来想着基于zk临时节点,实现一下分布式锁,结果发现有curator框架.PS:原声API真的难用,连递归创建path都没有? 配置curator maven的时候,md配置了好几个小时,最后发现集中 ...
- java安装1.8的经验和Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVers问题处理
java安装1.8后的问题:之前安装了jdk1.7和jdk1.6,之后又安装jdk1.8,然后执行java -version,输出的是1.8的,后来在注册表把jdk1.8改为1.7,然 ...
- poj 2524 求连通分量(并查集模板题)
求连通分量 Sample Input 10 91 21 31 41 51 61 71 81 91 1010 42 34 54 85 80 0Sample Output Case 1: 1Case 2: ...
- NET定时任务组件Hangfire
开源的.NET定时任务组件Hangfire解析 项目慢慢就要开工了,很多园友都在问这个事情,看来大伙对这事很上心啊,事情需要一步步的来,尽量写出一个我们都满意的项目.以前每次在博客前面都会扯淡一下,不 ...
- 如何用node.js批量给图片加水印
上一篇我们讲了如何用node.js给图片加水印,但是只是给某一张图片加,并没有涉及到批量处理.这一篇,我们学习如果批量进行图片加水印处理. 一.准备工作: 首先,你要阅读完这篇文章:http://ww ...
- MATLAB检查指定路径中的子文件夹中的文件名中是否带有空格
测试文件夹为: clear;close all;clc; %% %程序实现的功能 %检查指定路径中的子文件夹中的文件名中是否带有空格,并去掉文件名中的空格 %% %程序中用到的之前不清楚的函数如下 % ...
- kafka配置监控和消费者测试
概念 运维 配置 监控 生产者与消费者 流处理 分区partition 一定条件下,分区数越多,吞吐量越高.分区也是保证消息被顺序消费的基础,kafka只能保证一个分区内消息的有序性 副本 每个分区有 ...