1、繪製九宮格樣式的按鈕組
//建立九宮格按鈕組
func createbutton()
var secret = 0
for row in
0...2
for col in
0...2
//設定九個按鈕的位置,
let buttondistance = 100
//間距
let firstbtnpointx = 0
//第乙個按鈕的x
let firstbtnpointy = 0
//第乙個按鈕的y
let tempx:(cgfloat) =cgfloat(firstbtnpointx + col*buttondistance)
let tempy:(cgfloat) =cgfloat(firstbtnpointy + row*buttondistance)
//宣告按鈕
let btn:(uibutton) =uibutton(type:uibuttontype.custom)
btn.userinteractionenabled = false
//關閉使用者互動
btn.frame = cgrectmake(tempx, tempy, 80, 80)//
按鈕位置和大小設定
btn.setimage(uiimage(named:"gesture_node_normal"), forstate:uicontrolstate.normal)//預設
btn.setimage(uiimage(named:"gesture_node_highlighted"), forstate:uicontrolstate.selected)//選中
btn.tag = secret++ //
用來當作密碼
0-8
self.addsubview(btn)
2、根據觸控獲取的座標點獲取按鈕
首先根據事件傳入的set獲取當前試圖中觸控點的位置,在根據觸控點的位置獲取按鈕。
//獲取位置傳入當前觸控的檢視
let pos:(cgpoint) = (touch?.locationinview(touch!.view))!
//遍歷當前view的子檢視獲取按鈕
for btninself.subviews
if cgrectcontainspoint(btn.frame, point)
return btn as? uibutton
3、根據手勢滑動經過的按鈕座標繪製線
1)需要先定義乙個儲存紀動經過按鈕的資料
2)繪製線條需要監聽3個事件分別是:觸控開始、觸控移動、觸控結束將經過的按鈕儲存到陣列中。每次事件結束需要呼叫self.setneedsdisplay()來繪製檢視
3)使用uibezierpath物件來繪製連線線:
override
func drawrect(rect:cgrect) {
//沒有按鈕 if
self.btnselectarr.count ==0
return
//直接返回
//有按鈕,則繪製
letpath:(uibezierpath) =uibezierpath()
//建立路徑
for index in
0...self.btnselectarr.count -1
let btn:(uibutton) =self.btnselectarr.objectatindex(index)as!uibutton
//第乙個按鈕(每次會在的起點)
if index == 0
path.movetopoint(btn.center)//
從第乙個按鈕開始移動
else
path.addlinetopoint(btn.center)//連線
path.linewidth = 8
//線寬
uicolor.bluecolor().set()//顏色
path.stroke()//繪製
原始碼: (提取碼:3563)
手勢解鎖demo
import lsbackview.h inte ce lsbackview property nonatomic,strong nsmutablearray btnarray property nonatomic,strong nsmutablearray selectionarray prope...
canvas手勢解鎖思路
參考 基本要求是這樣的 將密碼儲存到 localstorage 裡,開始的時候會從本地讀取密碼,如果沒有就讓使用者設定密碼,密碼最少為五位數,少於五位要提示錯誤。需要對第一次輸入的密碼進行驗證,兩次一樣才能保持,然後是驗證密碼,能夠對使用者輸入的密碼進行驗證。一 新建畫布,指定寬度,每行排列3個圓,...
android手勢解鎖說明
購買了g1的發現自己的螢幕解鎖方式是按下menu鍵,似乎沒有看到android手勢解鎖這個比較酷的功能,我們完全可以自己設定t mobile g1來開啟手勢解鎖功能,在android作業系統中由9個點組成的,可以根據不同的方向連續滑動出圖形,所以在圖形組合上面有很多種方式,這樣可以不用 輸入繁瑣的密...