Swift實現下拉圖片放大效果

以前是作Object-C的,最近學會了Swift,下面用Swift實現效果。swift

首先使用的是UITableView來做爲主題框架,框架

1.建立 .swift文件(相似OC裏的PCH文件),在頭部寫入import UIKit建立變量SCREEN來存放屏幕的Rect代理

let SCREEN = UIScreen.main.bounds;圖片

2.建立頂部的圖片和Viewip

//頂部的圖片和Viewit

    lazy var headerImageViewTop:UIImageView = {table

        let header = UIImageView.init(frame: CGRect(x:0,y:0,width:SCREEN.width,height:160))import

        header.backgroundColor = UIColor.red變量

        header.image = UIImage.init(named: "timg.jpeg")cli

        header.contentMode = UIViewContentMode.scaleAspectFill

        header.clipsToBounds = true

        return header

        }()

    lazy var headerBackView:UIView = {

        let headerView = UIView.init(frame: CGRect(x:0,y:0,width:SCREEN.width,height:160))

        headerView.backgroundColor = UIColor.lightGray

        return headerView

    }()

3.UITableView

    //MARK:- 界面元素

    func createView() -> Void {

        myTableView.frame = CGRect(x:0,y:0,width:SCREEN.width,height:SCREEN.height-49-64)

        myTableView.delegate = self

        myTableView.dataSource = self

        myTableView.backgroundColor = UIColor .white

        let nib = UINib.init(nibName: "TMVCableViewCell", bundle: nil)

        myTableView.register(nib, forCellReuseIdentifier: "Cell")

        myTableView.tableHeaderView = self.headerBackView

        self.headerBackView.addSubview(self.headerImageViewTop)

    }

4.在代理中設置滾動時的座標變化

    //MARK:- 滾動tableView後

    func scrollViewDidScroll(_ scrollView: UIScrollView) {

        let imageWeight:CGFloat = headerImageViewTop.frame.size.width

        //上下偏移量

        let imageOffsetY:CGFloat = scrollView.contentOffset.y

        //上移

        if imageOffsetY<0 {

            let totalOffset:CGFloat = 160+abs(imageOffsetY)

            if abs(imageOffsetY)>160 {

                return

            }

    self.headerImageViewTop.frame = CGRect(x:0,y:imageOffsetY,width: imageWeight,height:totalOffset)

        }

    }

相關文章
相關標籤/搜索