之前的文章主要介紹swift的語法,本篇將帶領(lǐng)大家從UI層面學(xué)習(xí)iOS開發(fā)
學(xué)Swift掙美元UI篇之Gesture recognizers 手勢識別器
手勢識別器比觸摸操作更為強大煤痕。手勢識別器能夠以更貼近人類操作屏幕內(nèi)容。iOS基礎(chǔ)框架的好處讓我們無需編程或理解定義手勢識別算法的復(fù)雜基礎(chǔ)代碼, 就可以在自己的應(yīng)用里面檢測和響應(yīng)各種復(fù)雜的預(yù)定義手勢。
由于我們采用了蘋果提供的標(biāo)準(zhǔn)的手勢識別器(gesture recognizers),因此我們可以和微信臭埋、淘寶弱睦、京東等app擁有相同的體驗百姓。
實戰(zhàn)
下面,我們通過創(chuàng)建一個簡單的圖像查看器應(yīng)用程序來探索手勢的可能性况木。在此應(yīng)用中, 您將平移瓣戚、縮放和旋轉(zhuǎn)圖像, 或點擊以查看下一張圖像。
代碼下載
請大家先下載一下初始代碼
https://github.com/wangdazhi/ImageViewer
01 將文件拖拽入項目
Image Views是用于現(xiàn)實存在項目中的圖片控件焦读。
在我們項目中子库,可以看到一個images文件夾,直接將這個文件拖拽入項目中矗晃。具體操作可以參考下面視頻:
02 添加Pan gesture recognizer
(1) 從Object Library中拖拽Pan Gesture Recognizer到storeboard仑嗅,然后拖著到image view上:參考視頻
視頻教程之添加Pan Gesture Recognize
(2)在平移手勢識別器的 "屬性檢查器" 中, 將最大觸點調(diào)整為2。您將創(chuàng)建一個響應(yīng)平移手勢的操作张症。
下面(3)至(6)的具體操作請看視頻
視頻教程之手勢3至7添加action
(3)打開Assistant Editor
(4)按住control鍵仓技,將pan gesture recognizer拖拽到view controller源碼的viewDidLoad方法下面
(5)修改action的名稱為“handlePan”
(6)修改Type為“UIPanGestuerRecognizer”
(7)添加imageview 的outlet。handlePan函數(shù)可以響應(yīng)用戶移動手勢俗他,其中包含開始脖捻、更改、結(jié)束或是失敗兆衅。
視頻教程之手勢07添加iamgeview的outlet
(8)聲明一個坐標(biāo)轉(zhuǎn)換器translation
let translation = sender.translation(in: self.view)
(9)可以將此 x, y 坐標(biāo)添加到圖像視圖的當(dāng)前位置以移動圖像地沮。使用 view 的中心屬性設(shè)置圖像視圖的當(dāng)前位置:
imageView.center = CGPoint(
x:imageView.center.x + translation.x,
y:imageView.center.y + translation.y
)
(10)重置手勢識別器
sender.setTranslation(CGPoint.zero, in: self.view)
(11)給imageview設(shè)置一張圖片