定時器與 UIView 動畫結合的雪花降落的效果

2022-03-09 11:32:07 字數 1165 閱讀 7865

1

#import""

23@implementation46

2526 [nstimer scheduledtimerwithtimeinterval:0.1

target:self selector:@selector(findsnow) userinfo:nil repeats:yes];

2728

29return

yes;30}

3132

//找雪花

33 - (void

)findsnow

3445

else

4649}50

51 [self snowdown:asnow]; //

呼叫雪花動畫的方法,即時讓被找到的這朵雪花進行動畫52}

5354

//讓一朵雪花動畫

55 - (void)snowdown:(uiimageview *)asnow

5664

65 - (void)restart:(nsstring *)animationid finished:(nsnumber *)finished context:(void *)asnow

66//

讓已經下落到底部的動畫重新定位到頂部,達到重用的效果,並且重置 tag 值,此時這多雪花就可以被重新找到,再次進行下落的動畫

7172

/*73

注意上面的定時器的時間間隔(0.14)以及雪花下落動畫所需要的時間(7),以及陣列的長度(50)

740.14 * 50 = 7

75這個時間去的有點巧妙,這是乙個臨界值,本來我是本著不浪費的原則讓每一朵雪花都能夠沒找到然後進

76動畫,然後出現了上面的 bug, 如果將時間間隔調小一點(雪花動畫會出現斷層,最後一朵雪花的動畫

77果也會受到影響,此時將陣列長度減至10,會發現只有 9 多雪花進行了動畫,原理同上),如果將時間

78調大是可以解決問題的,因為此時在找到最後一朵雪花之前,已經有雪花重新在進行一輪動畫了。

79*/

8081

@end

這種使用定時器與 uiview 動畫結合製作的動畫效果既不僵硬,然後又能夠對雪花物件重用,節省了記憶體,是比較好的方式。

到這裡,動畫的學習已經結束了乙個階段,在使用過程中需要結合實際情況選擇。

shell與crontab定時器的結合

以守護程序方式在無需人工干預的情況下來處理一些列的作業指令與服務 停止服務 啟動服務 重啟服務 每分鐘 10 01,10 02 或 1 每小時0 每天0 0 每週0 0 0 每月0 0 1 每年0 0 1 1 每天早上 點 0 6 每 小時 0 2 每小時10分,40分 10,40 每天下午4,5,...

事件委託 定時器 清除定時器 封裝動畫函式

1 什麼是事件委託,原理是什麼?定義 利用事件冒泡,只指定乙個事件處理程式,就可以管理某一型別的所有事件 原理 事件委託利用事件冒泡 從最深的節點開始,然後逐步向上傳播事件 只在他們的父元素上指定乙個事件處理程式,就可以管理某一型別的的所有事件。2 js 中有幾種定時器,有什麼區別?兩種setint...

js 定時器的學習和對動畫的封裝(定時器)

1.定時器 在js裡面,定時器主要有兩種,setinterval function,time 和 settimeout function,time setinterval 每個time秒執行一次函式function settimeout time秒後執行函式,僅且只執行一次 對於定時器的定義主要有三...