iOS中跑马灯效果小结
时光过得好快,记忆中刚刚从春节返回没有多久,清明、五一已飞逝而过,眨眼已到盛夏季节。不过还好,济南这两年不算太热,刚开始升温几天,一场及时雨总能让温度保持适宜。为了纪念一下青春的尾巴,也为了能有个健康的身体和充沛的精力,现在上下班都开始步行。人生就是一场马拉松,无论何时何地都得学会享受好生活。每天早晚4公里的步行健身,晚上适当的跑步、看书、电视剧、音乐电台,整个人也感觉充实成长了好多。心静了,自信了,才能安宁,才能做好每一件事情。年后的这段期间做了一个公司自己的社交项目,总得来说学到很多,另外两个之前的项目更新优化。项目叠加总是让人痛苦紧张的,所以做好计划,提高效率是很重要的。最近明白了一句话,工作仅仅是生活的一部分,之前真是将工作看的太重,耗费了太多的精力与时间,其实合理的安排平衡生活工作才是最重要的。
最近做的项目中用到了很多有意思的东西,像是标签指定区域设置点击效果,跑马灯效果的实现,手机通讯录中汉字转化成拼音并实现分组效果,当然研究的过程有的时候是枯燥的,如果真心的沉迷其中,其实也很有乐趣的。当前这个商业化的社会,金钱相关的东西占据了人太多的精力,既然赶上了变革的时代还是接受现实,经营好每天的生活或许才是正确的态度吧。幸运的是现在越来越喜欢现在的生活,工作的充实感以及带来的满足感、成就感。爱你现在的时光,或许每个人都改这么做的。
言归正传,下面说一下最近项目中用到的跑马灯控件。之前做web开发的时候,有专门的跑马灯控件,没想到如此简单的效果如果自己去实现其实也是有一定的难度的。刚开始也是没什么思路,从网上搜了好多的例子,大部分都是同一个出处,其实不知该怎么说,别人写的东西直接拷贝过来,完全一样,好处是能够使用,也助于别人搜索,其实这样的东西最好能够消化吸收变成自己的东西,想想那些地方可以优化。我将从网上搜索的一个比较成型的demo优化了一下,精简了好多代码,其实原理很简单的,有需求的可以参考一下。
UIView*backscrollview=[[UIView alloc]init];
backscrollview.frame=CGRectMake(10, 13, 100, 18);
backscrollview.backgroundColor=[UIColor clearColor];
//需要给标签设置一个父控件,并将溢出的部分屏蔽掉
backscrollview.clipsToBounds=YES;
[self.navigationController.navigationBar addSubview:backscrollview];
//导航左侧文本
UILabel*lblScrollLabel=[[UILabel alloc]init];
lblScrollLabel.text=@"我依然燃烧我仍在信仰";
lblScrollLabel.font = [UIFont systemFontOfSize:15];
CGSize lblSize= [HemaFunction getSizeWithStr:lblScrollLabel.text width:150 font:15];
if (lblSize.width>self.frame.size.width)
{
lblSize.width=self.frame.size.width;
}
lblScrollLabel.frame = CGRectMake(0, 0, lblSize.width, self.frame.size.height);
lblScrollLabel.backgroundColor = [UIColor clearColor];
lblScrollLabel.textColor = BB_Blake_Color;
lblScrollLabel.textAlignment = NSTextAlignmentLeft;
lblScrollLabel.frame = CGRectMake(0, (self.frame.size.height-lblSize.height)/2, lblSize.width, self.frame.size.height);
//实现标签滚动的动画
CGRect frame = lblScrollLabel.frame;
frame.origin.x = lblSize.width;
lblScrollLabel.frame = frame;
//这个属性是让标签内容自动展示在父控件中和多行展示属性有冲突
[lblScrollLabel sizeToFit];
[UIView beginAnimations:@"testAnimation" context:NULL];
[UIView setAnimationDuration:5];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDelegate:self];
[UIView setAnimationRepeatAutoreverses:NO];
[UIView setAnimationRepeatCount:9999999999999];
frame = lblScrollLabel.frame;
frame.origin.x = -titlewidth;
lblScrollLabel.frame = frame;
[UIView commitAnimations];
[self addSubview:lblScrollLabel];
iOS中跑马灯效果小结的更多相关文章
- Android中跑马灯效果
<com.randy.test1.self.MarqueeText android:id="@+id/btn1" android:layout_width="mat ...
- android中实现跑马灯效果以及AutoCompleteTestView与MultiAutoCompleteTextView的学习
跑马灯效果 1.用过属性的方式实现跑马灯效果 属性: android:singleLine="true" 这个属性是设置TextView文本中文字 ...
- ListView 中的TextView实现跑马灯效果
案例:怎么样在一个ListView中含有TextView的item中实现字母滚动呢.这个在一些特定的场合经常用得到.如下图,当焦点位于某个item的时候其内容就自动滚动显示 要实现这样的效果,废话不多 ...
- andriod给ListView中的TextView增加跑马灯效果
正常情况下跑马灯效果只需要在TextView中添加android:ellipsize="marquee" android:singleLine="true" a ...
- TextView跑马灯效果
转载:http://www.2cto.com/kf/201409/330658.html 一.只想让TextView显示一行,但是文字超过TextView的长度怎么办?在开头显示省略号 android ...
- Android_TextView之跑马灯效果
对于android控件中的TextView,相信大家一定不陌生,在显示文本内容时十分方便.不过我在使用时遇到一个小问题,就是当文字交多时,如何为用户进行展示.今天就为大家介绍一种解决方案--跑马灯效果 ...
- android:ellipsize实现跑马灯效果总结(转)
最近无意间看到了涉及到跑马灯效果的代码,于是在网上查阅了很多资料,在这里对自己看的一些文章进行一下总结,顺便加上自己的一些体会. 让我们一步步逐渐向下. 首先我们要实现走马灯这样一个效果,通常来说 ...
- Android学习总结——TextView跑马灯效果
Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize="marquee" 2.TextView必须单行显示,即内容必须 ...
- 【Android】TextView跑马灯效果
老规矩,先上图看效果. 说明 TextView的跑马灯效果也就是指当你只想让TextView单行显示,可是文本内容却又超过一行时,自动从左往右慢慢滑动显示的效果就叫跑马灯效果. 其实,TextView ...
随机推荐
- Java安全之Commons Collections5分析
Java安全之Commons Collections5分析 文章首发:Java安全之Commons Collections5分析 0x00 前言 在后面的几条CC链中,如果和前面的链构造都是基本一样的 ...
- NB-IOT关键技术分析
NB-IOT(NarrowBand Internet of Things,窄带IoT)是一种基于蜂窝的窄带物联网技术,支持低功耗设备在广域网的蜂窝数据连接.NB-IOT在物联网应用广泛,许多领域都充分 ...
- [Luogu P2891/POJ 3281/USACO07OPEN ]吃饭Dining
传送门:https://www.luogu.org/problemnew/show/P2891 题面 \ Solution 网络流 先引用一句真理:网络流最重要的就是建模 今天这道题让我深有体会 首先 ...
- P5958 【[POI2017]Sabotaż】
P5958 [[POI2017]Sabotaż] 题意描述 在一棵以1号节点为根节点的树上,有很多纯洁的白点, BUT,突然有一个黑点出现(可能在任意位置) 它要染黑尽可能多的节点,而在一棵子树中, ...
- js 元素添加多个监听
function addListener(element,e,fn){ if(element.addEventListener){ element.addEventListen ...
- Jmeter(二十六) - 从入门到精通 - 搭建开源论坛JForum(详解教程)
1.简介 今天这篇文章主要是给大家讲解一下,如何部署测试环境,这里宏哥部署一个开源测论坛,后边的文章中会用到这个论坛,并且也看到童鞋们在群里讨论如何在开发将测试包发给你以后,你如何快速地部署测试环境. ...
- 【Mycat】Mycat核心开发者带你轻松掌握Mycat路由转发!!
写在前面 熟悉Mycat的小伙伴都知道,Mycat一个很重要的功能就是路由转发,那么,这篇文章就带着大家一起来看看Mycat是如何进行路由转发的,好了,不多说了,我们直接进入主题. 环境准备 软件版本 ...
- CodeChef-RNDRATIO Mysterious Ratio 题解
CodeChef-RNDRATIO Mysterious Ratio 题意简述: 对每个 \(1 \le i \le n\) ,随机选择一个数 \(A_i\) ,满足 \(L_i \le A_i \l ...
- 主动关闭 time wait结构体
/* * This is a TIME_WAIT sock. It works around the memory consumption * problems of sockets in such ...
- linux 协议栈 实现--编码小知识分析
unlikely 以及likely 作用: rcu_read_lock 以及rcu_read_unlock 作用: rcu_dereference .rcu_dereference_protecte ...