103 - Cocoa Autolayout
本講座介紹蘋果對IB的又一大手筆的更新,過去的窗口內部設計都是傳統的相對位置和定錨的方式估定內部compoment的位置,蘋果的方式和微軟的窗口的方式是大同小異。這次蘋果重新設計窗口的內部設計,提出一種全新的自動布局的方式,非常新穎和功能強大。
這種設計提供了兩種布局的方式,第一種是通過IB,在Xcode中的IB中,通過圖像的方式,排列和布局窗口。這種方式在其它講座有專門介紹。本講座介紹第二種方式,通過編碼的方式更深入地剖析蘋果這種新布局的原理和API。
基本原理或公式:
根據這個公式,蘋果Cocoa平台有一系列支持Class和API,比如NSLayoutConstraint。這個class有許多非常方便使用的API可以用來定義視元之間的關係,而Cocoa背後的操作系統能夠根據這些關係協調元與整個窗口的關係,提供許多免費的強大功能,讓軟件開發者將精力放在很容易理解的元與元的關繫上。與微軟的平台比較,這是一個非常大的飛躍。
蘋果的軟件工程師太有想象力了,為了給編碼提供更為簡練和直觀的方式,蘋果提出一種ascii藝術,用這樣的編碼來定義 compoments之間的關係:
講座還深入討論了運行中布局是如何實現的,並如何利用編碼方式進行布局和調試。這種自動布局帶來許多優點:
- 提供限制(constrains)的方式可大大減少過去需要增加的控制布局的編碼,constrains非常靈活和功能強大。
- ascii藝術的編碼的方式大大簡化表述布局和分層關係
- 設計十分靈活方便
- 容易支持語言的當地化
- 表述方式來表達元與元之間的關係、最小和最大限制以及優先考慮權
104 - Advanced Scroll View Techniques
Scroll View是一個非常有用的可視元,在iOS中有廣泛的使用,如照片圖像。本講座介紹蘋果為此增加的新的API和使用技巧的演示:
- 如何實現無限循環移動
- 如何增加靜態的可視元,如圖像上部的提示和註腳
- 如何處理特殊的Touch,比如採用UIScrollView和UIGestureRecognizer來處理滾動移動和刷動
- 放大之後如果將圖像的精度提高
參考資料