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];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM