【我們都愛Paul Hegarty】斯坦福IOS8公開課個人筆記22 多MVC模式Demo中的AutoLayout自動布局

來源:互聯網
上載者:User

標籤:ios8   swift   mvc   autolayout   自動布局   

上一話我們詳細介紹了多MVC模式以及Segue過渡的時候,這一話用一個新的Demo來詮釋。


我們建立一個Psychologist的工程。把ViewController的名字改為PsychologistViewController。那麼這個控制器是做什麼用的呢?系統問你一個問題,然後你做出回答,系統會根據你的回答判斷你是否開心,這樣就能用上我們之前的Hppiness的項目。

在視圖中加入一個label,然後調整字型為36,文字置中,label兩邊上邊都與藍線對齊。


每一話都會滲透一些自動布局的內容。我們讓這個label重設到它被推薦的位置。


我們會看到:


中間的藍線代表label與下邊界產生了關聯,但是我們不希望這樣做,因為你並不確認啟動並執行裝置的尺寸。通常我們不去關聯下邊界,而讓下邊界的距離做一個彈性的變數。

我們開啟右側的尺寸檢測器,可以看到所有的約束:


我可以選中我不喜歡的約束然後delete它。刪掉之後會出現黃線,因為我們沒有足夠的約束了,按照我們之前講的,在試圖大綱中update frame,你會看到黃線消失了。

有了問題,現在我們把答案拖出來,這是一個按鈕。我把這個按鈕拖到中間,然後點擊重設位置到推薦位置(和上面操作一樣),然後我們刪除不需要的約束,這裡我只保留豎直方向的置中,我們不需要上下的間距和固定寬高,因為我希望這個按鈕的大小根據它裡面的內容來自動調整。


這時我需要使用其他約束了,點擊右下角按鈕欄的第一個按鈕


因為已經有了豎直方向的中心,所以只要添加一個水平方向的置中就行了。


你會看到現在我們的按鈕在水平和豎直方向上都置中了。再次update frame,按鈕的位置就調整好了。


然後複製按鈕,加入不同的內容。

新按鈕重設到推薦的位置,你會看到它有兩個約束,一個水平置中,一個底部距離:



我們用同樣的辦法建立第三個按鈕:


我們運行一下我們的程式:


你可以看到頂部的文字被截掉了,旋轉一下:


看起來橫屏模式下效果很好,但是豎屏就不行了,為什麼會這樣呢?因為我們設定了字型為36號,你可以在storyboard屬性監測器的Autoshrink中看到,目前的設定為Fixed

 Font Size(固定字型大小):


但是這個字型不需要固定大小,我需要設定它的最小值,不希望它比12號要小,設定如下:


現在我們再來運行,你會看到字型會自動縮放,當螢幕變寬的時候字型會變大。


那麼有沒有辦法可以讓文字自動換行呢?一種方法是用textView替換label。另一種方法是設定label中的Line Breaks,當前的做法是刪減尾部,最直接的直接設定lines的值。



【我們都愛Paul Hegarty】斯坦福IOS8公開課個人筆記22 多MVC模式Demo中的AutoLayout自動布局

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.