幾種常用UIView的簡單動(dòng)畫(不涉及CA)

簡單的UIView的Block動(dòng)畫

首先來說一下這個(gè)UIView的Block動(dòng)畫,這個(gè)動(dòng)畫用著方便,還可以設(shè)置很多屬性,基本上我用的是最多的了.主要是好用.這個(gè)也是分幾個(gè)不同的方法,根據(jù)自己需求選擇方法.

1.UIView animateWithDuration:<#(NSTimeInterval)#> animations:<#^(void)animations#>

第一個(gè)方法,第一個(gè)參數(shù)是你這個(gè)動(dòng)畫要播多久,我一般是0.25,不知道為什么就是想寫0.25,第二個(gè)參數(shù)是一個(gè)Block,看見Block啥也不想,先回車再說.這里面要寫你想干的事.我前面寫的隱藏TabBar和NavigationBar我自己寫的動(dòng)畫就是這個(gè),不過缺點(diǎn)那里面也說了,有需要的可以看一下.

2.UIView animateWithDuration:<#(NSTimeInterval)#> animations:<#^(void)animations#> completion:<#^(BOOL finished)completion#>

第二個(gè)方法,這個(gè)比第一個(gè)多了一個(gè)Block,看名字也知道,完成以后要干啥,打個(gè)比方,我放了一個(gè)動(dòng)畫,然后我想在動(dòng)畫結(jié)束以后,彈一個(gè)控制器出來,那這個(gè)完全滿足您的需要.前兩個(gè)參數(shù)是一樣的,動(dòng)畫時(shí)長和要做的事情.后面是動(dòng)畫完成以后要做的事情.

3.UIView animateWithDuration:<#(NSTimeInterval)#> delay:<#(NSTimeInterval)#> options:<#(UIViewAnimationOptions)#> animations:<#^(void)animations#> completion:<#^(BOOL finished)completion#>

第三種方法,這個(gè)方法參數(shù)就稍微有點(diǎn)多了,但是前兩個(gè)用過以后,你會(huì)發(fā)現(xiàn),第三個(gè)就是比第二個(gè)多了幾個(gè)參數(shù)而已,參數(shù)嘛,給就是了.Duration:時(shí)長 delay:多久以后才開始 option:你放動(dòng)畫的時(shí)候要干嘛或者想怎樣 animations:要干的事情 completion:完成以后你想干嘛

這個(gè)delay沒啥要說的吧,就是我放了一個(gè)動(dòng)畫,但是我不想立馬就播放,你給我等2s出來,就用這個(gè),option,這個(gè)更簡單,我放動(dòng)畫的時(shí)候吧,我還想用戶點(diǎn)一下動(dòng)畫就沒了,我得響應(yīng)用戶交互吧,那你就進(jìn)去選UIViewAnimationOptionAllowUserInteraction這個(gè),還有就是,我放動(dòng)畫了,改變了一下布局,那你就得重新布局子控件了對吧,選UIViewAnimationOptionLayoutSubviews這個(gè),布局子控件嘛.

4.UIView animateWithDuration:<#(NSTimeInterval)#> delay:<#(NSTimeInterval)#> usingSpringWithDamping:<#(CGFloat)#> initialSpringVelocity:<#(CGFloat)#> options:<#(UIViewAnimationOptions)#> animations:<#^(void)animations#> completion:<#^(BOOL finished)completion#>

這個(gè)第四種方法就比較牛逼了,前兩個(gè)參數(shù)我就不說了吧,一樣的,咱從這個(gè)Damping開始說,感覺這個(gè)方法好長啊,而且老子英語不好怎么破,完全不知道這啥玩意,OK,我建議記住一個(gè)單詞,就是前面的spring,春天,春天來了,你得發(fā)春,所以得動(dòng),那么這個(gè)參數(shù)就是動(dòng)的意思,(Spring這里是彈簧的意思,Damping,阻尼,我的寫上,這個(gè)參數(shù)的真實(shí)意思是彈簧的阻尼設(shè)置)沒記錯(cuò)的話范圍是0-1,你越接近1你的騷動(dòng)越厲害...反之越差,在看Velocity,這個(gè)總認(rèn)識(shí)吧,v不就是速度嗎,這里是指速率,看你騷動(dòng)的速度,沒記錯(cuò)的話也是0-1,(彈簧的速率設(shè)置)和上面一樣0---->1后面這幾個(gè)參數(shù)我就不說了 一樣的.

總結(jié)一下,UIView的Block動(dòng)畫還是蠻好用的,能幫助大家實(shí)現(xiàn)動(dòng)畫效果,根據(jù)需求的不同,選擇自己需要的動(dòng)畫.

UIView的首尾式動(dòng)畫

這個(gè)UIView的動(dòng)畫,我是用的不多,因?yàn)橐粋€(gè)字,費(fèi)勁...我真沒發(fā)現(xiàn)有啥用,不過萬一別人有用呢,對吧,我也寫這里.

第一步:開啟動(dòng)畫

兩個(gè)參數(shù),第一個(gè)是NSString的,明顯是你給動(dòng)畫一個(gè)名字,是想在找這個(gè)動(dòng)畫的時(shí)候方便,我不用,所以我一直寫nil,第二個(gè)上下文,沒啥用,也nil或者你寫null都行.

[UIView beginAnimations:nil context:nil];

是不是略熟悉的感覺,動(dòng)畫的時(shí)長,就想寫0.25,不知道為什么.

[UIView setAnimationDuration:0.25];

又是熟悉的感覺,多久以后才放動(dòng)畫1s

[UIView setAnimationDelay:1];

大爺,要重復(fù)嗎?來3次.

[UIView setAnimationRepeatCount:3];

中間寫需要?jiǎng)赢嫷拇a

改變一個(gè)控件的位置,從0,0 我移動(dòng)到100,100

提交動(dòng)畫

[UIView commitAnimations];

總結(jié)一下,這個(gè)動(dòng)畫我用的真是不多,因?yàn)?我用這個(gè)實(shí)現(xiàn)的都可以用Block動(dòng)畫來實(shí)現(xiàn).所以,我感覺還是Block更方便一些.

序列幀動(dòng)畫

悠然記得上初中的時(shí)候,上微機(jī)課,半個(gè)學(xué)期,做了一個(gè)火柴人的動(dòng)畫.一幀一幀的動(dòng)畫.是我第一次用電腦做出來的東西.

先講解一下序列幀動(dòng)畫,咱們要實(shí)現(xiàn)序列幀動(dòng)畫得拿到一張張的圖片,你從服務(wù)器也好,放assets里面也好,其實(shí)就是看到的gif,只不過現(xiàn)在咱們需要把一張張的圖片連貫起來,實(shí)現(xiàn)gif效果

用的概率嘛,我感覺應(yīng)該是一般,不多吧.

首先第一步,如果你是本地的,那么就得加載本地?cái)?shù)據(jù).如果你是網(wǎng)絡(luò)的 你得網(wǎng)絡(luò)獲取數(shù)據(jù),不管怎么說,你獲取到的數(shù)據(jù)肯定是一堆圖片.把這些圖片存在數(shù)組里.

第二步,UIIimage里面有個(gè)方法,自己可以把一系列圖片變成一張動(dòng)態(tài)圖.

第一個(gè)參數(shù)就是你存圖片的數(shù)組,第二個(gè)參數(shù)是你執(zhí)行的時(shí)間

UIImage animatedImageWithImages:<#(nonnull NSArray*)#> duration:<#(NSTimeInterval)#>

返回值是一個(gè)UIImage,接一下.然后你就能實(shí)現(xiàn)GIF了


本文不針對任何學(xué)術(shù)性研究,單純?yōu)榱藠蕵?看不慣我就直說,反正我不改.

寶劍鋒從磨礪出,梅花香自苦寒來.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在iOS實(shí)際開發(fā)中常用的動(dòng)畫無非是以下四種:UIView動(dòng)畫,核心動(dòng)畫,幀動(dòng)畫,自定義轉(zhuǎn)場動(dòng)畫。 1.UIView...
    請叫我周小帥閱讀 3,339評論 1 23
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫效果,實(shí)現(xiàn)這些動(dòng)畫的過程并不復(fù)雜,今天將帶大家一窺iOS動(dòng)畫全貌。在這里你可以看...
    F麥子閱讀 5,275評論 5 13
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫效果,實(shí)現(xiàn)這些動(dòng)畫的過程并不復(fù)雜,今天將帶大家一窺ios動(dòng)畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,699評論 6 30
  • 2UIView動(dòng)畫 2.1概述 UIView視圖的動(dòng)畫功能,可以使在更新或切換視圖時(shí)有放緩節(jié)奏、產(chǎn)生流暢的動(dòng)畫效果...
    Kevin_Junbaozi閱讀 1,745評論 0 0
  • 一、初始化方法 1、- initWithFrame: UIView *view = [[UIView alloc]...
    默默_David閱讀 2,735評論 1 3

友情鏈接更多精彩內(nèi)容