博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift - 用UIScrollView实现视差动画效果
阅读量:5786 次
发布时间:2019-06-18

本文共 3051 字,大约阅读时间需要 10 分钟。

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

 

效果

 

源码

////  MoreInfoView.swift//  Swift-Animations////  Created by YouXianMing on 16/8/18.//  Copyright © 2016年 YouXianMing. All rights reserved.//import UIKitclass 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(-50, 0, rect.size.width + 50 * 2, 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 UIKitclass ScrollImageViewController: FullTitleVisualEffectViewController, UIScrollViewDelegate {    let viewTag            : Int! = 1000    var onceLinearEquation : Math!    var pictures           : [UIImage]!    var scrollView         : UIScrollView!        override func setup() {                super.setup()                onceLinearEquation = Math(pointA: CGPointMake(0, -50), pointB: CGPointMake(contentView!.width, 270 - 80))        pictures           = [UIImage]()        pictures.append(UIImage(named: "1")!)        pictures.append(UIImage(named: "2")!)        pictures.append(UIImage(named: "3")!)        pictures.append(UIImage(named: "4")!)        pictures.append(UIImage(named: "5")!)                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 0 ..< pictures.count {                        let showView              = MoreInfoView(frame: CGRectMake(CGFloat(i) * width, 0, 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 0 ..< pictures.count {                        let showView = scrollView.viewWithTag(viewTag + i) as! MoreInfoView            showView.imageView.x = onceLinearEquation.k * (X - CGFloat(i) * width) + onceLinearEquation.b        }    }}

 

转载地址:http://pztyx.baihongyu.com/

你可能感兴趣的文章
吃午饭前,按书上的代码写会儿--Hunt the Wumpus第一个版本
查看>>
easyui中combobox的值改变onchang事件
查看>>
Eclipse魔法堂:任务管理器
查看>>
一周自学动态站点设计
查看>>
eclipse中查看某个方法(函数)被谁调用
查看>>
poj万人题
查看>>
Android-Universal-Image-Loader
查看>>
Java从零开始学四(数据类型)
查看>>
Android 从硬件到应用:一步一步向上爬 4 -- 使用 JNI 方法调硬件驱动
查看>>
windows 如何查看端口占用情况?
查看>>
根据ImageView的大小来压缩Bitmap,避免OOM
查看>>
TEST
查看>>
loadrunner 的Administration Page里面设置
查看>>
程序员喜欢怎样的职位描述?(转)
查看>>
威胁快报|ProtonMiner挖矿蠕虫扩大攻击面,加速传播
查看>>
<<深入PHP面向对象、模式与实践>>读书笔记:面向对象设计和过程式编程
查看>>
架构的“一小步”,业务的一大步
查看>>
聊聊flink JobManager的heap大小设置
查看>>
PAT A1116
查看>>
App上架/更新怕被拒? iOS过审“避雷秘籍”请查收
查看>>