我们常见走马灯样式的功能,下面整理一下 Object-C 与 Swift 的实现代码

  1. OC
  1. UILabel *label3 = [[UILabel alloc] initWithFrame:CGRectMake(10,200, self.view.bounds.size.width, 100)];
  2. label3.backgroundColor = [UIColor redColor];
  3. label3.text =@"走马灯 走马灯 走马灯 走马灯 走马灯 走马灯 走马灯 走马灯~~~";
  4. [self.view addSubview:label3];
  5.  
  6. CGRect frame = label3.frame;
  7. frame.origin.x = -180;
  8. label3.frame = frame;
  9. [UIView beginAnimations:@"testAnimation"context:NULL];
  10. [UIView setAnimationDuration:8.8f];
  11. [UIView setAnimationCurve:UIViewAnimationCurveLinear];
  12. [UIView setAnimationDelegate:self];
  13. [UIView setAnimationRepeatAutoreverses:NO];
  14. [UIView setAnimationRepeatCount:999999];
  15. frame = label3.frame;
  16. frame.origin.x =350;
  17. label3.frame = frame;
  18. [UIView commitAnimations];
  1. Swift
  1. //添加上计算文字长度,优化动画效果
  2. let str : NSString = "走马灯 走马灯 走马灯 走马灯 走马灯 走马灯 走马灯 走马灯......"
  3. let font : UIFont = UIFont.systemFont(ofSize: 14)
  4. let attrs : NSDictionary = [NSFontAttributeName : font]
  5. let size : CGSize = str.boundingRect(with: CGSize.init(width: kScreenWidth, height: CGFloat(MAXFLOAT)), options: [.usesLineFragmentOrigin, .usesFontLeading], attributes: attrs as! [String : Any], context: nil).size
  6. let lab = UIFactory.create_ALabel(text: str as String, superView: self.view)
  7. lab.frame = CGRect(x: 15, y: 10, width: kScreenWidth, height: 20)
  8. lab.textColor = UIColor.hrgb("666666")
  9. lab.font = font
  10. var frame : CGRect = lab.frame
  11. frame.origin.x = size.width
  12. lab.frame = frame
  13. UIView.beginAnimations("testAnimation", context: nil)
  14. UIView.setAnimationDuration(8.8)
  15. UIView.setAnimationCurve(.linear)
  16. UIView.setAnimationDelegate(self)
  17. UIView.setAnimationRepeatAutoreverses(false)
  18. UIView.setAnimationRepeatCount(999999)
  19. frame = lab.frame
  20. frame.origin.x = -size.width
  21. lab.frame = frame
  22. UIView.commitAnimations()
  1.  

OC Swift 走马灯效果的更多相关文章

  1. 教你实现类似于格瓦拉启动页中的放大转场动画(OC&Swift)

    教你实现类似于格瓦拉启动页中的放大转场动画(OC&Swift) 一.前言 用过格瓦拉电影,或者其他app可能都知道,一种点击按钮用放大效果实现转场的动画现在很流行,效果大致如下 在iOS中,在 ...

  2. Android TextView走马灯效果

    布局: <TextView android:id="@+id/myTextView" android:layout_width="match_parent" ...

  3. android中设置TextView/Button 走马灯效果

    在Android的ApiDemo中,有Button的走马灯效果,但是换作是TextView,还是有一点差异. 定义走马灯(Marquee),主要在Project/res/layout/main.xml ...

  4. android - TextView单行显示...或者文字左右滚动(走马灯效果)

    条件 TextView单行显示,文字左右滚动(走马灯效果)实现条件: 实现单行设置固定宽度或者设置权重都行 代码 TextView滚动必须写下面几个属性 android:singleLine=&quo ...

  5. Jquery 图片走马灯效果原理

    本篇只讲解水平走马灯效果,垂直向上走马灯效果不讲解,原理一样,但是水平走马灯效果有一个小坑.待会讲解 照例先上代码: HTML: <div class="box"> & ...

  6. 使用OC swift 截取路径中的最后的文件名

    使用 OC swift 截取路径中的最后的文件名 如何截取下面路径中最后的文件名 AppDelegate.swift /Users/XXX/Desktop/Swift/swift02/code/02- ...

  7. css3 走马灯效果

    纯css3实现了一个正六边形的走马灯效果,记录一下css3动画的学习情况,效果如下: 主要用到的css3技术有:keyframes.perspective.perspective-origin.tra ...

  8. JS与原生OC/Swift相互调用总结

    代码地址如下:http://www.demodashi.com/demo/12754.html JS-OC-Swift JS和OC/Swift相互调用,主要总结了JS和OC交互的三种方式 1.使用UI ...

  9. vue 实现走马灯效果

    Part.1  问题 在写一个H5页面时遇到一个需求,头部公告需要滚动变换,需要实现一个走马灯效果 Part.2  实现 我的做法:利用 定时器 + CSS3 变换公告数组的顺序 从而实现走马灯效果 ...

随机推荐

  1. 非对称加密和linux上的 ssh-keygen 工具使用

    rsa :创造非对称加密的三个人名.原理是两个1024到2048之间的素数,以此为乘积.等... a*b=c  一般a*b为私钥端,c为公钥端.因为 c非常难算出a和b. ssh-keygen -t ...

  2. shell 脚本静默安装oracle11g

    以下脚本的手动安装连接:  https://www.cnblogs.com/leihongnu/p/12698593.html [ #/bin/bash#安装日志touch /root/message ...

  3. CSS px的理解

    px是像素.然而一个屏幕像素的多少是由屏幕的分辨率决定的. 取个极端的栗子:如果分辨率是1w*1w,你设置一个100px宽的输入框,你只占屏幕的1/100,但是如果屏幕的分辨率是100*100,那么你 ...

  4. (2)Canal管理后台在linux环境上部署

    1.背景 canal-admin设计为canal组件提供了配置管理.节点运维等功能的WebUI操作界面,方便用户快速操作. 2.前期准备 先到官网下载个canal.admin组件:也可以输入命令下载: ...

  5. Cookie、Session、localStorage、sessionStorage区别和用法

    Cookie 在学习一个新知识点前,我们应该明白自己的学习目标,要带着疑问去学习,该小节须要了解 Cookies 什么是cookie,cookie的作用 cookie的工作机制,即cookie是运作流 ...

  6. Spark中资源调度和任务调度

    Spark比MR快的原因 1.Spark基于内存的计算 2.粗粒度资源调度 3.DAG有向无环图:可以根据宽窄依赖划分出可以并行计算的task 细粒度资源调度 MR是属于细粒度资源调度 优点:每个ta ...

  7. 问题 F: 背包问题

    题目描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10):如果给你一个背包它能容纳的重量为m(10<=m<=20), ...

  8. excel (2)

    ... poi 3.8 import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; ...

  9. Excel 读取写入数据库

    // Excel 读取写入数据库 // 3.8版本的poi  4.0 可以不用写  parseCell  这个方法,可以直接赋值 STRING 类型 import org.apache.poi.hss ...

  10. [hdu7097]Just a Data Structure Problem

    (四边形不等式的套路题) 对于某一组$a_{i}$,显然可以区间dp,设$f_{l,r}$表示区间$[l,r]$​的答案,则转移即$$f_{l,r}=\begin{cases}0&(l=r)\ ...