時光過得好快,記憶中剛剛從春節返回沒有多久,清明、五一已飛逝而過,眨眼已到盛夏季節。不過還好,濟南這兩年不算太熱,剛開始升溫幾天,一場及時雨總能讓溫度保持適宜。為了紀念一下青春的尾巴,也為了能有個健康的身體和充沛的精力,現在上下班都開始步行。人生就是一場馬拉松,無論何時何地都得學會享受好生活。每天早晚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];