美文网首页
iOS 跑马灯

iOS 跑马灯

作者: awindyseason | 来源:发表于2017-08-28 16:50 被阅读0次
跑马灯效果图
  • 几行代码实现跑马灯/ 一个Label搞定跑马灯

    • 要显示的文字text,宽度为width 。
    • label.text = 两份相同text拼接在一起,label 宽度为width * 2
    • label用UIView + CGAffineTransform动画在 width/40 时间内偏移-width长度 (速度 = 40/秒),complete后,将label 复原会起始状态并重新偏移。如此循环。 (视觉错觉产生跑马灯效果)
  • 以下为swift 代码:

//这里的  label 要显示的宽度为屏幕宽度
    var stop: Bool = false 
    lazy var lb : UILabel = {
        let lb = UILabel()
        lb.text = self.text.appending(self.text)
        lb.backgroundColor = .red
        lb.textColor = UIColor.white
        lb.font = UIFont.systemFont(ofSize: 14)
//  如果此是self.width 足够显示。lb的宽度就直接设置为要显示的宽度就行了。
//   lb.frame = CGRect(x: 0, y: 100, width:  self.width*2, height: 40)
        self.view.addSubview(lb)
        lb.snp.makeConstraints({ (make) in
            make.top.equalTo(0)
            make.height.equalTo(40)
            make.left.equalTo(0)
            make.width.equalTo(self.width * 2)
        })
        return lb
    }()
    let text:String  = "两姓联姻,一堂缔约,良缘永结,匹配同称。看此日桃花灼灼,宜室宜家,卜他年瓜瓞绵绵,尔昌尔炽。谨以白头之约,书向鸿笺,好将红叶之盟,载明鸳谱。此证          "
    lazy var width: CGFloat = {
        return self.text.size(attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 14)]).width
    }()


//   关键代码 
  func circleText(){
          UIView.animate(withDuration: TimeInterval(self.width/40), delay: 0,       options: .curveLinear, animations: {
            self.lb.transform = .init(translationX: -self.width, y: 0)
        }) { (bool) in
  //  循环调用 。退出Controller 时候 记得移除动画
            if bool {
                 self.lb.transform = .identity
            self.circleText()
            }
           
        }
 }

  • 注意:
    • 循环时 要text宽度是否超过label显示在屏幕的宽度,如果不超过, 则不执行循环。
    • 原理如此,具体细节调试根据实际需求进行修改

相关文章

  • iOS:一用就上瘾的跑马灯视图

    iOS:一用就上瘾的跑马灯视图 iOS:一用就上瘾的跑马灯视图

  • iOS 跑马灯的实现

    介绍 我们一说起跑马灯第一个想到的就是:山寨机。接下来介绍的跑马灯和那个跑马灯是不一样滴。在iOS中,跑马灯是指l...

  • iOS简单音乐实现、React-Native完整项目、仿闲鱼京东

    iOS精选源码 iOS快速入手语音识别、听写、评测、播报 网络加载数据的过渡动画(仿简书网页) iOS 封装跑马灯...

  • iOS 跑马灯 一句话集成【转】

    原文地址:iOS 跑马灯 一句话集成至于为什么说一句话,看一下我在ViewController中 初始化跑马灯的D...

  • iOS 跑马灯

    简易跑马灯效果,代码简单易懂,适合初学者 /** 新建文件,继承于UIView .h文件代码如下*/ #impor...

  • iOS - 跑马灯

  • iOS 跑马灯

    几行代码实现跑马灯/ 一个Label搞定跑马灯要显示的文字text,宽度为width 。label.text = ...

  • iOS 跑马灯

    前言花里胡哨的UI,设计了花里胡哨的界面,然后我们苦逼的程序员就要去实现。 跑马灯效果有N多种实现,有通过动画实现...

  • iOS 跑马灯

    参考文章:https://www.jianshu.com/p/8f1f1b1ee814 使用第三方框架TXScro...

  • H5 div文字循环滚动

    实际上也叫跑马灯。说起跑马灯这个词,还是去年或前年写iOS时候用到的呢,不知道是哪位前辈兴得这个词儿。在h5里俗点...

网友评论

      本文标题:iOS 跑马灯

      本文链接:https://www.haomeiwen.com/subject/dfegdxtx.html