简短的Swift-tableHeaderImage的视差滚动效果

来源:互联网 发布:怎么把淘宝宝贝推广 编辑:程序博客网 时间:2024/04/29 06:58

最近发现很多App都用到了Parallax(视差滚动),其实这种效果很早都已在Web领域运用,自己曾经在搞前端的时候也用纯CSS实现过。今天就在iOS平台试着用Swift写一下。

源码如下,已传Github并附了个Demo:

////  HeaderParallax.swift//  HeaderParallax////  Created by mingMac    on 14-8-15.//  Copyright (c) 2014年 com.ming. All rights reserved.//import Foundationimport UIKitclass HeaderParallax : NSObject{    var imagev = UIImageView();    var tablev = UITableView();        var initialFrame:CGRect!;    var initialHeight:CGFloat!;        func InitHeaderForTableView(tableView:UITableView!,imageView:UIImageView!){        imagev = imageView;        tablev = tableView;                initialFrame = imageView.frame;        imageView.frame.size.width = tableView.frame.size.width        initialHeight = initialFrame.size.height;                var headerView:UIImageView = UIImageView(frame: initialFrame);        tablev.tableHeaderView = headerView;                tablev.addSubview(imagev)    }        func scrollViewDidScroll(scrollView: UIScrollView!){                if scrollView.contentOffset.y < 0 {            var OffsetY:CGFloat = scrollView.contentOffset.y + scrollView.contentInset.top            initialFrame.origin.y = OffsetY;            initialFrame.size.height = initialHeight + (OffsetY * -1)            initialFrame.size.width = tablev.frame.size.width                        imagev.frame = initialFrame        }    }}

正如代码很短,原理也很简,重点就是那两个函数。算是个抛砖引玉,期待大家能在此基础上实现更华丽的效果。

0 0
原创粉丝点击