看到標題,如果你認為UI沒有什么可聊的,那么你就聽我講述下UI
“當我們在iPhone遮怜、iPad等iOS裝置上淋袖,用手指按到一個按鈕上的時候,事實上锯梁,我們並不是真的按在一個按鈕上即碗,而是按在螢幕上—是觸控螢幕的硬體接收了我們的輸入之後,再將我們的觸控輸入送到軟體中陌凳,最後營造了「我們的手指按到了按鈕上」的幻覺剥懒。
從工程師的角度來看,所謂的UI都只是幻覺合敦,「手指按到了螢幕中的按鈕」這件事情本身並不存在初橘。而製作UI,就是在製造幻覺充岛;UI設計壁却,就是你打算營造”
“怎樣的幻覺。iOS 7之前裸准,蘋果是透過漸層與逼真細膩但靜態(tài)的圖示製造光影的幻覺展东,在iOS 7之後,圖示變成扁平化設計炒俱,但是改用motion effect等動畫效果盐肃,創(chuàng)造深度的錯覺。
不同於其他的開發(fā)平臺权悟,在iOS與Mac OS X上砸王,事件(Event)只用來表達來自硬體的各種輸入行為。在iOS上的UIEvent包含了觸控輸入峦阁、藍芽耳機遙控換歌等谦铃,Mac OS X上的NSEvent則包括了鍵盤、滑鼠事件榔昔【匀颍”
“在iOS裝置上,當硬體發(fā)生觸控事件撒会,到我們的按鈕發(fā)生反應之間嘹朗,事實上經歷了:
硬體把事件傳到我們的App中,交由UIApplication物件分派事件
UIApplication把事件傳送到Key
Window中诵肛,接著由Key Window負責分派事件
Key Window開始尋找在View
Heirarchy中最上層的view controller與view屹培,然後,發(fā)現(xiàn)最上層的view ”
“UIResponder protocol⊥市悖回到我們會給一個專有名詞的習慣蓄诽,所謂responder,就是「可以處理事件的物件」媒吗。
在一堆可以處理事件的物件中仑氛,最後被分派到、把事件處理掉的物件蝴猪,叫做first responder调衰,而這種一環(huán)又一環(huán)尋找誰該處理事件的鎖鏈,叫做Responder Chain自阱。
而這個流程嚎莉,會在runloop當中不斷循環(huán)∨嫱悖”
而上述就是我想要時說的UI
內容源自 iOS核心動畫