IOS 自動布局 (上)

2021-07-05 00:06:37 字數 1234 閱讀 2044

最早接觸xcode是4.0 那時候auto layout真不成熟,一直用純**自己寫,從最cgrectgetmaxy,cgrectgetmaxx到現在的第三方,最近時間比較多了,參考了網上列子,研究下了 auto layout 和size classes.

auto layout:

我覺得使用 auto layout 設定x,y 還是根據上乙個父view座標 或者兄弟view的座標,而w,h呢?是手動寫死,或根據螢幕大小根據拘束條件,自動生成不同的數值。

如下圖展示:

1.固定寬和高,leading and trailing space

2.第乙個固定,第二個不固定寬。horizontal space constaint

3.等寬和等高約束 equal widths constaint

但是 這裡有個問題 橫豎屏 切換的時候 長方形變正方形。。。 要再加個 約束 aspect ratio constaint

有關衝突約束,是本來系統會為view生成約束,一旦你設立了乙個約束,就會打破系統自帶的,有些時候你生成乙個約束,系統不能判定其完整位置或狀態,需要其他約束來解決衝突。要不就是倆個試圖約束有衝突,這裡就不舉列了。

size classes

size classes為高和寬分別提供了三種型別:緊湊型(compact)、普通型(regular)、任意型(any)。用這三種高和寬的型別就可以組合出9種size class,來表示不同的裝置螢幕。

size classes標準 為:600*600 , 在實際運用中,我們發現並不是所有的尺寸都能在size classes中找到明確的組合(比如沒有組合可以明確表示iphone6 plus的豎屏,ipad的橫豎屏也不好區分),但是我們可以使用表示這個尺寸範圍的組合。比如我們可以用compact width | regular height來表示iphone6 plus的豎屏,本人目測,size classes就是讓我們模擬橫屏和豎屏或ipad版,在這裡面加約束,至於怎麼加,和上面介紹的一樣,今天先到這,下次研究更深入在**。

IOS自動布局

使用相對布局之後,可以增加開發的速度,一直用frame的方式,混亂。使用相對布局之後,之前以設定frame的方式來取設定view將沒有效果 除了controller的view 同設定frame類似的時,在設定view的約束的時候,也需要制定他的大小和座標,否則,編輯器會提示警告。以實際操作來演示下如...

ios 自動布局小結

ios6 引入了自動布局。雖然專案中所用不多。但是還是 早點資料看看 做個總結。隨著蘋果解析度越來越多。類似自動布局肯定是越發重要了。在ios 之前 有 autosizing 就是 在父view 跟子view 引入了 spring 和 strut 的概念。乙個是彈簧?意思應該是保證距離不會大於某乙個...

iOS 自動布局Autolayout

自動布局 autolayout 簡介 在以前的ios程式中,是如何設定布局ui介面的?經常編寫大量的座標計算 為了保證在3.5 inch和4.0 inch螢幕上都能有完美的ui介面效果,有時還需要分別為2種螢幕編寫不同的座標計算 即傳說中的 螢幕適配 什麼是autolayout?autolayout...