[ SWIFT ] - 史丹福 StandFord-CS193P-課程8-心得分享-20150818
[ SWIFT ] - 史丹福 StandFord-CS193P-課程8-心得分享-20150818
課程重點:
1.ViewController的生命週期
2.AutoLayout
1.ViewController的生命週期:
2.AutoLayout
先複習一下之前已經使用過的AutoLayout
(1)在Storyboard中拖拉時,盡量對齊藍線
(2)透過Ctrl+拖曳方式建立AutoLayout 條件
(3)透過Pin和Arrange來對齊
(4)使用Reset to Suggested Constraints建議的限制條件來建立限制條件
(5)Document Outline可以查詢到全部的限制條件
(6)Size Inspector可以調整限制條件
(7)點選限制條件後可在Attributes Inspector中進行編輯
※影片中老師也提到,AutoLayout的使用需要經驗的累積!
※AutoLayout可以透過程式碼完成,但99%的情況是透過StoryBoard上的操作來完成!(比較省事嘛!)

UIUserInterfaceSizeClass-強制切換SizeClass的方法
課程重點:
1.ViewController的生命週期
2.AutoLayout
1.ViewController的生命週期:
2.AutoLayout
先複習一下之前已經使用過的AutoLayout
(1)在Storyboard中拖拉時,盡量對齊藍線
(2)透過Ctrl+拖曳方式建立AutoLayout 條件
(3)透過Pin和Arrange來對齊
(4)使用Reset to Suggested Constraints建議的限制條件來建立限制條件
(5)Document Outline可以查詢到全部的限制條件
(6)Size Inspector可以調整限制條件
(7)點選限制條件後可在Attributes Inspector中進行編輯
※影片中老師也提到,AutoLayout的使用需要經驗的累積!
※AutoLayout可以透過程式碼完成,但99%的情況是透過StoryBoard上的操作來完成!(比較省事嘛!)

rotation-關於旋轉
在談論旋轉的時候,老師帶出一個很重要的議題:Size Class ,請看以下的介紹:
例如:計算機直立時為4行5列,希望旋轉後變成5行4列!這是不可能透過AutoLayout達成的!那要如何完成呢?透過Size Class:Regular-寬鬆、Compact-緊湊、Any
在影片中老師透過不同Regular、Compact、Any的設定,可以看到在不同設備上呈現的內容!
UIUserInterfaceSizeClass-強制切換SizeClass的方法
說明:
透過UIUserInterfaceSizeClass可以設定view的Regular、Compact來改變SizeClass
例如下圖中我在Any+Regular中新增紅色的部分,在
Compact+Any中新增綠色的部份,在獄藍的時候可以發現,當設備可以容納的時候,他會將紅色宇綠色部份一起呈現,當不支援的時候會只呈現一部分!
因此在開發app的時候需要,除了需要思考不同的設備外,還要考慮不同設備旋轉後的結果!
透過PreView可值直接看到執行結果,而不需每次都執行模擬器,因Preview會佔用較多資源,故不建議一直使用!
魔術數字
接下來要介紹的部份非常重要-如何在自定限制條件後達到AutoLayout?(魔術數字的處理)
==>將 Equals值設為0或Standard Value
有關魔術數字部分相信大家一定會有疑問,究竟何時要設定standValue何時要設定為0呢?
規則為:如果清除時可以設定Standard Value就以StandValue為優先,再來才是0(有點廢話~XD)
以下圖為例:
Equals值為83如果要達到AutoLayout則需將 Equals設為0,因為Standard Value反灰不可選取!
快速設定法:
※有時設定或調整限制條件後storyboard並不會呈現結果,請執行Update Frames(此應為xcode bug)
※選取條件時,按下shift鈕後可同時勾選多筆
Hugging & Compression-UI物件的縮放
Content Compression Resistance Priority區塊,此屬性控制著label是否可以隨著內容變多而增加它的尺寸。預設的水平(Horizontal) priority是750,然而控制著label和右邊界 20 points間距的constraint預設的priority卻是大於750的1000,所以label輸了,無法拉長它的寬度。
Hugging priority:確定view有多大的優先級阻止自己變大,數字越小越容易被放大。
Compression Resistance priority:確定有多大的優先級阻止自己變小,數字越小越不會被壓縮。
※Compression越大表示越優先進行縮放,當所有物件的縮放設定都一樣時,xcode會不知道要選擇誰進行縮放而出現錯誤!
留言
張貼留言
您好:
歡迎到訪我的Blog,這裡有我的生活經驗、美好的回憶和程式開發經驗分享~
目前努力學習Swift中,希望你會喜歡Swift!
如果可以也請你留言給我一個鼓勵喔!
謝謝