跑马灯动画点击事件

跑马灯动画点击事件,第1张

概述代码块 //// SNMarqueeView.swift// Futianwisdom//// Created by Snow on 16/5/23.// Copyright (c) 2016年 futianwisdom. All rights reserved.//import UIKitimport SwiftyJSONprotocol SNMarqueeView 代码块
////  SNMarqueeVIEw.swift//  Futianwisdom////  Created by SNow on 16/5/23.//  copyright (c) 2016年 futianwisdom. All rights reserved.//import UIKitimport SwiftyJsONprotocol SNMarqueeVIEwDelegate {    func dIDSelectURL(url: String)}class SNMarqueeVIEw: UIVIEw {    var delegate: SNMarqueeVIEwDelegate?    private var marqueeTitle = ""    private var TitleArray = [String]()    private var urlArray = [String]()    private var mark:CGRect!    private var lastLabelFrame = CGRectZero    private var labarr = [UILabel]()    private var isstop = false    private var timeInterval1: NSTimeInterval!    convenIEnce init(frame: CGRect,Json: [JsON]) {        self.init(frame: frame)        for obj in Json {            marqueeTitle += obj["Title"].stringValue            TitleArray.append(obj["Title"].stringValue)            urlArray.append(obj["link"].stringValue)        }        self.backgroundcolor = UIcolor.whitecolor()        self.clipsToBounds = true        let tapGesture = UITapGestureRecognizer(target: self,action: "tapClick:")        self.addGestureRecognizer(tapGesture)        timeInterval1 = NSTimeInterval(marqueeTitle.characters.count/2)        for _ in 0...1 {            for Title in TitleArray {                let lab = UILabel()                lab.frame = CGRectZero                lab.textcolor = UIcolor.graycolor()                lab.Font = UIFont.boldSystemFontOfSize(14.0)                lab.text = Title                lab.userInteractionEnabled = false                //计算textLab的大小                let sizeOfText = lab.sizeThatFits(CGSizeZero)                lab.frame = CGRectMake(                    lastLabelFrame.origin.x + lastLabelFrame.size.wIDth,0,sizeOfText.wIDth,self.bounds.size.height)                lastLabelFrame = lab.frame                self.addSubvIEw(lab)                labarr.append(lab)            }        }        mark = CGRectMake(0,lastLabelFrame.origin.x + lastLabelFrame.size.wIDth,self.bounds.size.height)        self.labAnimation()    }    //跑马灯动画    func labAnimation() {        if (!isstop) {            UIVIEw.TransitionWithVIEw(self,duration: timeInterval1,options: UIVIEwAnimationoptions.Curvelinear,animations: {                for label in self.labarr {                    label.frame.origin.x -= self.mark.size.wIDth/2                }                },completion: { finished in                    for label in self.labarr {                        label.frame.origin.x += self.mark.size.wIDth/2                    }                    self.labAnimation()            })        } else {            self.layer.removeAllAnimations()        }    }    func start() {        isstop = false        self.labAnimation()    }    func stop() {        isstop = true        self.labAnimation()    }    func tapClick(gesture: UITapGestureRecognizer) {        let clickPoint = gesture.locationInVIEw(self)        for vIEw in self.subvIEws {            if let label = vIEw as? UILabel {                if let obj = label.layer.presentationLayer() as? CALayer {                    if (obj.hitTest(clickPoint) != nil) {                        if let text = label.text {                            for (index,value) in EnumerateSequence(TitleArray) {                                if text == value {                                    if urlArray.count > index {                                        self.delegate?.dIDSelectURL(urlArray[index])                                    }                                }                            }                        }                    }                }            }        }    }}
总结

以上是内存溢出为你收集整理的跑马灯动画点击事件全部内容,希望文章能够帮你解决跑马灯动画点击事件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1074584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存