Swift - 用UIScrollView实现视差动画效果
2024-08-30 18:26:27
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
}
}
}
最新文章
- React Native 之 TextInput使用
- ASP.NET 保存txt文件
- codevs 1215 迷宫
- ubuntu下命令行打开pdf/doc/ppt文件
- 命令模式坚决svn树冲突(local unversioned, incoming add upon update)
- htop
- 汉化Eclipse+配色方法(官方语言包)
- iOS webview加载html自定义选项框选词
- VS2013 支持python和nodejs
- URL和DNS解析
- css3太极图效果+自动旋转
- php访问类静态属性
- pugixml
- C#的dictionary使用总结
- SelectDirectory使用方法以及EnableTaskWindows
- 【Egret】使用Egret开发的HTML5项目,使用本地电脑作为服务器进行移动端调试流程
- Java socket详解(转)
- DevExpress ASP.NET Core Controls 2019发展蓝图(No.1)
- Java课程寒假之开发记账本软件(网页版)之三
- Lab 7-2