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第三方庫

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • github地址:https://github.com/EmyWong/PersonalUITech 項目新功能模...
    Treey_Ahao閱讀 3,042評論 0 2
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,141評論 5 13
  • 前言 前段時間看到一個挺有趣的動畫效果,于是就想著實現一下,順便練下手,這里是第一篇教程,介紹了啟動動畫的制作,示...
    Arthury閱讀 685評論 5 11
  • 前言:關于貝塞爾曲線與CAShapeLayer的學習 學習Demo演示: 貝塞爾曲線簡單了解 使用UIBezier...
    麥穗0615閱讀 17,917評論 18 149
  • 想,聽著輕輕的水浪聲,枕著你的肩膀,目視前方,無需言語,便可聽見你的聲音,待 潮水退去,漫天的紅霞灑滿天邊,只留下...
    a默語閱讀 174評論 0 0