ios開(kāi)發(fā)ui篇—實(shí)現(xiàn)一個(gè)簡(jiǎn)單的手勢(shì)解鎖應(yīng)用

ios開(kāi)發(fā)ui篇—實(shí)現(xiàn)一個(gè)簡(jiǎn)單的手勢(shì)解鎖應(yīng)用

ID:27560622

大?。?02.32 KB

頁(yè)數(shù):17頁(yè)

時(shí)間:2018-12-03

ios開(kāi)發(fā)ui篇—實(shí)現(xiàn)一個(gè)簡(jiǎn)單的手勢(shì)解鎖應(yīng)用_第1頁(yè)
ios開(kāi)發(fā)ui篇—實(shí)現(xiàn)一個(gè)簡(jiǎn)單的手勢(shì)解鎖應(yīng)用_第2頁(yè)
ios開(kāi)發(fā)ui篇—實(shí)現(xiàn)一個(gè)簡(jiǎn)單的手勢(shì)解鎖應(yīng)用_第3頁(yè)
ios開(kāi)發(fā)ui篇—實(shí)現(xiàn)一個(gè)簡(jiǎn)單的手勢(shì)解鎖應(yīng)用_第4頁(yè)
ios開(kāi)發(fā)ui篇—實(shí)現(xiàn)一個(gè)簡(jiǎn)單的手勢(shì)解鎖應(yīng)用_第5頁(yè)
資源描述:

《ios開(kāi)發(fā)ui篇—實(shí)現(xiàn)一個(gè)簡(jiǎn)單的手勢(shì)解鎖應(yīng)用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)

1、iOS幵發(fā)UI篇一實(shí)現(xiàn)一個(gè)簡(jiǎn)單的手勢(shì)解鎖應(yīng)用一、實(shí)現(xiàn)效果實(shí)現(xiàn)效果圖:二、手勢(shì)解鎖應(yīng)用分析1.監(jiān)聽(tīng)手指在view上的移動(dòng),首先肯定需要自定義一個(gè)view,重寫touchbegan,touchmove等方法,當(dāng)手指移動(dòng)到圈上時(shí),讓其變亮??梢酝ㄟ^(guò)button按鈕來(lái)實(shí)現(xiàn)。2.界面搭建背景圖片(給控制器的view添加一個(gè)imageview,設(shè)置屬性背景圖片)九個(gè)按鈕(把九個(gè)按鈕作為一個(gè)整體,使用一個(gè)大的view來(lái)管理這些小的view,這壁小的view就是9個(gè)button。如果使用手動(dòng)拖控件的方式實(shí)現(xiàn)頁(yè)面搭建,那么9個(gè)按鈕需要拖拽九次,且需要對(duì)齊,不靈活,這里選擇使用以【九宮格】代碼的方式

2、創(chuàng)建9個(gè)按鈕)。3.新建一個(gè)類,對(duì)自定義的view進(jìn)行管理,這個(gè)view是從storyboard創(chuàng)建出來(lái)的,會(huì)調(diào)用aweakframe方法和initwithcoder方法,后者先調(diào)用因此把創(chuàng)建按鈕的代碼寫在這個(gè)方法中。部分代碼:1//界面搭建2-(id)initWithFrame:(CGRect)frame3{4self=[superinitWithFrame:frame];5if(self){6[selfsetup];7}8returnself:9}10ll-(id)initWithCoder:(NSCoder氺)aDecoder12{13if(self=[superinitW

3、ithCoder:aDecoder]){14[selfsetup]:15}16returnself;17}18//在界面上創(chuàng)建9個(gè)按鈕19-(void)setup20{21//1.創(chuàng)建9個(gè)按鈕22for(inti=0:ilt;9;i++){23UIButton*btn=[UIButtonbuttonWithType:UIButtonTypeCustom]:24//2.設(shè)置按鈕的狀態(tài)背景25[btnsetBackgroundlmage:[UllmageimageNamed:〃gesture_node_normal〃]forState:UlControlStateNormal]:26

4、[btnsetBackgroundlmage:[UllmageimageNamed:z/gesture_nodehighlighted"]forState:UlControlStateSelected];27//3.把按鈕添加到視圖中28[selfaddSubview:btn];29//4.禁止按鈕的點(diǎn)擊事件30btn.userlnteractionEnabled=N0;31}32}注意點(diǎn):在initwithcoder:方法中一定要先對(duì)父類進(jìn)行初始化。說(shuō)明:當(dāng)視圖從xib或storyboard中創(chuàng)建出來(lái)會(huì)調(diào)用initwithcoder:方法,如果視圖是通過(guò)代碼創(chuàng)建出來(lái)的,那么就會(huì)

5、調(diào)用initwithFrame:方法。提示:使用代碼創(chuàng)建視圖,即便是調(diào)用init方法而不是直接調(diào)用nitwithFrame:方法,init方法內(nèi)部也會(huì)調(diào)用nitwithFrame:方法。建議:如果重寫view的話,建議同時(shí)重寫這兩個(gè)方法。調(diào)用,【selfsetup】三、實(shí)現(xiàn)基本連線步驟:1.創(chuàng)建按鈕2.設(shè)置按鈕的背景圖片(默認(rèn)狀態(tài)__選中狀態(tài))3.添加按鈕到view提示:不要在構(gòu)造方法中設(shè)置按鈕的frame,因?yàn)檫@個(gè)方法是在構(gòu)造方法中調(diào)用的,而在構(gòu)造方法中獲取不了frame。4.在layoutSubviews中設(shè)置按鈕的frame。(提示:一定要先調(diào)用父類的layoutSubvi

6、ews)4.1取出對(duì)應(yīng)位置的按鈕4.2設(shè)置每個(gè)按鈕的frame5.監(jiān)聽(tīng)手指的移動(dòng)。分析程序,應(yīng)該監(jiān)聽(tīng)手指的移動(dòng),而不是按鈕的點(diǎn)擊,當(dāng)手指移動(dòng)到按鈕的范圍內(nèi)時(shí),讓按鈕變亮。5.1重寫touchesbegan…方法(1)獲取按下的點(diǎn)(2)判斷觸摸的位置是否在按鈕的范圍內(nèi)(使用超級(jí)for循環(huán))提示:一個(gè)判斷點(diǎn)是否在指定范圍內(nèi)的方法CGRectContainsPoint(,);5.2重親斤touchesmoved…方法說(shuō)明:當(dāng)手指移動(dòng)到按鈕上的時(shí)候,按鈕變亮,因此需要重寫touchesmoved方法。(1)獲取觸摸的點(diǎn)(2)判斷觸摸的點(diǎn)是否在按鈕的范圍內(nèi)。提示:可以把上面兩個(gè)功能分別進(jìn)行

7、封裝,在使用的時(shí)候直接調(diào)用即可。封裝代碼:1//對(duì)功能點(diǎn)進(jìn)行封裝2-(CGPoint)getCurrentPoint:(NSSet*)touches3{4UITouch氺touch=[touchesanyObject]:5CGPointpoint=[touchlocationlnView:touch,view]:6returnpoint;7}89-(UIButton*)getCurrentBtnWithPoint:(CGPoint)point10{llfor(UIButton*b

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。