一、通過slider控制圓的縮放
1.實作過程
建立一個項目,建立一個繼承自uiview的類,并和storyboard中自定義的view進行關聯。
界面搭建,如圖:
代碼示例:
yyviewcontroller.m檔案


yyview.h檔案


yyview.m檔案


效果:
2.注意點:
drawrect:方法不能由我們自己手動調用,隻能由系統來調用。
drawrect:調用的時機:當第一次顯示或者一個重繪事件發生時調用。
setneedsdisplay方法:重新繪制,調用這個方法就會通知自定義的view重新繪制畫面,調用drawrect:。
提示:當一個view從xib或storyboard建立出來時,會調用awakefromnib方法。
3.補充
可以通過slider的value屬性監聽值的改變,當然也可以指定value的取值範圍(這裡設定為0~100)。
二、刷幀效果
說明:把雪花狀的圖檔繪制到view上,實作圖檔在視圖中下落的效果。
1.實作代碼:


實作效果
2.重要說明
(1)下面兩個方法的調用順序
-(void)awakefromnib
-(id)initwithcoder:(nscoder *)adecoder
提示:如果view是從xib或storyboard中建立可以調用awakefromnib方法,歸檔。從檔案建立view,其實會先調用initwithcoder這個方法。xib和storyboard也是檔案。
上面兩個方法,-(id)initwithcoder:(nscoder *)adecoder會先調用。實作該方法需要實作nscoding協定,由于建立的uiview預設就已經實作了該協定。
可以進入到頭檔案檢視:
運作建立的程式,通過列印可以驗證上面兩個方法的調用順序。
(2)兩個定時器
第一個:
[nstimer scheduledtimerwithtimeinterval:0.1 target:self selector:@selector(updateimage) userinfo:nil repeats:yes];
說明: nstimer一般用于定時的更新一些非界面上的資料,告訴多久調用一次
第二個:
cadisplaylink *display= [cadisplaylink displaylinkwithtarget:self selector:@selector(updateimage)];
[display addtorunloop:[nsrunloopmainrunloop] formode:nsdefaultrunloopmode];
說明: cadisplaylink刷幀,預設每秒重新整理60次。該定時器建立之後,預設是不會執行的,需要把它加載到消息循環中