Swift,swiftcode

來源:互聯網
上載者:User

Swift,swiftcode

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 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        }    }}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.