与面试官浅谈UI

简介: 与面试官浅谈UI

看到标题,如果你认为UI没有什么可聊的,那么你就听我讲述下UI

“當我們在iPhone、iPad等iOS裝置上,用手指按到一個按鈕上的時候,事實上,我們並不是真的按在一個按鈕上,而是按在螢幕上—是觸控螢幕的硬體接收了我們的輸入之後,再將我們的觸控輸入送到軟體中,最後營造了「我們的手指按到了按鈕上」的幻覺。

從工程師的角度來看,所謂的UI都只是幻覺,「手指按到了螢幕中的按鈕」這件事情本身並不存在。而製作UI,就是在製造幻覺;UI設計,就是你打算營造”

“怎樣的幻覺。iOS 7之前,蘋果是透過漸層與逼真細膩但靜態的圖示製造光影的幻覺,在iOS 7之後,圖示變成扁平化設計,但是改用motion effect等動畫效果,創造深度的錯覺。

不同於其他的開發平台,在iOS與Mac OS X上,事件(Event)只用來表達來自硬體的各種輸入行為。在iOS上的UIEvent包含了觸控輸入、藍芽耳機遙控換歌等,Mac OS X上的NSEvent則包括了鍵盤、滑鼠事件。”

“在iOS裝置上,當硬體發生觸控事件,到我們的按鈕發生反應之間,事實上經歷了:

硬體把事件傳到我們的App中,交由UIApplication物件分派事件

UIApplication把事件傳送到Key

Window中,接著由Key Window負責分派事件

Key Window開始尋找在View

Heirarchy中最上層的view controller與view,然後,發現最上層的view ”

“UIResponder protocol。回到我們會給一個專有名詞的習慣,所謂responder,就是「可以處理事件的物件」。

在一堆可以處理事件的物件中,最後被分派到、把事件處理掉的物件,叫做first responder,而這種一環又一環尋找誰該處理事件的鎖鏈,叫做Responder Chain。

而這個流程,會在runloop當中不斷循環。”

而上述就是我想要时说的UI

内容源自 iOS核心动画


相关文章
|
2月前
|
缓存 前端开发 JavaScript
【面试题】4月面经 前端常考JS编程题
【面试题】4月面经 前端常考JS编程题
|
2月前
|
缓存 前端开发 JavaScript
【面试题】金九银十,你准备好面试了吗? (30w字前端面试题总结)( React)
【面试题】金九银十,你准备好面试了吗? (30w字前端面试题总结)( React)
104 0
|
1月前
|
人工智能 Java API
面试官:谈谈对SpringAI的理解?
面试官:谈谈对SpringAI的理解?
24 0
面试官:谈谈对SpringAI的理解?
|
2月前
|
XML JavaScript 前端开发
【面试题】面试官:谈谈你知道的DOM常见的操作
【面试题】面试官:谈谈你知道的DOM常见的操作
149 0
|
2月前
|
编解码 前端开发 JavaScript
【面试题】前端面试中需要注意的细节 Css知识点
【面试题】前端面试中需要注意的细节 Css知识点
|
存储 缓存 前端开发
LiveData 面试题库、解答、源码分析
LiveData 面试题库、解答、源码分析
100 1
|
缓存 前端开发 JavaScript
【面试官系列】一道曾经卡得我 “头皮发麻” 的阿里前端(React)面试题 ~
【面试官系列】一道曾经卡得我 “头皮发麻” 的阿里前端(React)面试题 ~
|
缓存 前端开发 Java
LiveData 面试题库、解答、源码分析(下)
LiveData 面试题库、解答、源码分析
121 0
|
XML Java API
49张图带领小伙伴们体验一把 Flowable-UI
49张图带领小伙伴们体验一把 Flowable-UI
|
缓存 移动开发 开发框架
vue面试题八股文简答大全 让你更加轻松的回答面试官的vue面试题
Vue.js是一个流行的JavaScript框架,它使得构建复杂的交互式应用程序变得更容易。Vue.js基于MVVM模式设计,采用了响应式数据绑定和组件化的架构。在Vue.js中,数据绑定是非常重要的概念,它通过使用观察者模式来追踪数据变化并自动更新DOM。 Vue.js源码是一个庞大而复杂的项目,但通过掌握其核心概念,我们可以更好地理解其工作原理。在本文中,我们讨论了Vue.js的响应式数据绑定、虚拟DOM、模板编译、组件、生命周期钩子、事件处理和指令等关键知识点。了解这些知识点可以让我们更好地编写Vue.js应用程序,并深入了解Vue.js的工作原理
163 1