iOS-跑马灯效果实现

    跑马灯效果在移动客户端中多用于“公告”、“消息”等功能的展示,本次demo以一种简易的实现方法(UILabel配合timer控制label位置变化)实现了该需求。

主要实现方法如下:

- (void)setUpView {

[selfaddSubview:self.marqueeLabel];

self.marqueeLabel.sd_layout.leftSpaceToView(self,self.frame.size.width).centerYEqualToView(self).heightIs(20);//UI布局----借助SDAutoLayout框架

//启动NSTimer定时器来改变label的位置

self.timer= [NSTimerscheduledTimerWithTimeInterval:0.01

target:selfselector:@selector(changePosition)

userInfo:nilrepeats:YES];

}

- (void)setMarqueeText:(NSString*)marqueeText {

self.marqueeLabel.text= marqueeText;// 从控制器获取文本

}

- (void) changePosition

{

CGPointcurPosition =self.marqueeLabel.center;

//当curPos的x坐标已经超过了屏幕的宽度

if(curPosition.x<-self.marqueeLabel.width/2)

{

//控制label再次从屏幕左侧开始移动

self.marqueeLabel.center=CGPointMake(self.frame.size.width+self.marqueeLabel.width/2,20);

}

else

{

//通过修改iv的center属性来改变iv控件的位置

self.marqueeLabel.center=CGPointMake(curPosition.x-0.5,20);

}

//其实label的整个移动都是靠label.center来去设置的

}

    效果如图:


附带GitHub地址:https://github.com/FantasyWanH/Marquee

demo中包含了SDAutoLayout第三方库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • github地址:https://github.com/EmyWong/PersonalUITech 项目新功能模...
    Treey_Ahao阅读 8,133评论 0 2
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,537评论 5 13
  • 前言 前段时间看到一个挺有趣的动画效果,于是就想着实现一下,顺便练下手,这里是第一篇教程,介绍了启动动画的制作,示...
    Arthury阅读 3,907评论 5 11
  • 想,听着轻轻的水浪声,枕着你的肩膀,目视前方,无需言语,便可听见你的声音,待 潮水退去,漫天的红霞洒满天边,只留下...
    a默语阅读 1,396评论 0 0
  • 晚上开着车,过湘江还东西给同事。今年晚上已经很少出来,似乎都忘了立秋后的夏夜有多迷人。 早上去做了检查,回来查资料...
    身体棒棒阅读 1,184评论 0 5

友情链接更多精彩内容