使用ios的autolayout做UI

2021-08-27 19:23:51 字數 803 閱讀 2285

之前一直用的是老的座標定位,和自動縮放進行ui定位,現在iphone6出來了,尺寸又變了,為了適應各種螢幕,以前的通過判斷裝置型別和裝置螢幕大小呼叫不同的xib已經有點過時了,或者說太浪費時間了,也可以說是一種bug。現在必須使用新的autolayout來定義介面。

使用autolayout必須知道constraints。就是約束規則,通過定義一系列規則來描述某個控制項的位置和大小,和其他控制項的關係,同時可以定義優先順序,優先考慮優先順序高的規則。

constraints包含以下規則:

1.自身規則。

定義自己的寬度或者高度,定義自己距離父視窗上下左右的距離,或者是居中點。

2.和其他控制項規則。

定義2個控制項的上下左右對齊方式,定義2個空間的上下距離。

基本上通過這2種規則的定義,我們就可以輕鬆的描述乙個介面的資訊,而且可以在iphone4s,iphone5,iphone6,以及ipad上都能保持良好適配。

ios8還支援sizeclasses,對於某一下在pad上和phone上希望顯示不同的控制項,或者不同的控制項大小,都可以通過這個功能,完成,比如aw,ah表示任意的裝置,rw,ah表示乙個pad等。不過個人覺得這個功能有點落伍,把在**中判斷裝置的功能放到ui編輯器了而已。

此外ios6和7、8對於autolayout的理解方式不一樣,比如ios7和8中如果是個uitabbarcontroller的乙個介面,最下面的空間的bottom規則定義是,距離父視窗底部距離是49(49是tabbar的高度),而在ios6中則應該定義為距離父視窗的底部距離是0。而這個只能在**裡硬判斷,然後手動新增規則了。估計這也是在xcode6中開始放棄ios6的原因吧。

iOS 之系統的autoLayou自動t布局

在storyboard中自動布局時,要注意內容吸附優先順序的問題,數值越大,優先順序越高,就越能保持住本身的樣子 約束新增的原則 約束新增到父view上,如果沒有父view,可以新增到共同的父別上 也就是爺爺輩,依次網上推 如果是寬度,高度可以新增到自己身上。import viewcontrolle...

ios 謂詞的使用

剛入行的小女人,希望以後大家多多關照,把每天學到的知識記錄下,方便以後使用,有不對的地方希望大家多多指點,小女感激不盡。今天剛剛學了謂詞的使用,記錄下。返回乙個符合謂詞條件的陣列 nsarray newarray array filteredarrayusingpredicate predicate...

iOS 巨集的使用

由於平時在開發過程中,經常有遇到使用巨集 常量的時候。但是一直對這兩者的使用有些疑惑。尤其是對const的使用更加模糊,只知道該修飾符有很多種用法,位置不同含義不同。所以特意查詢了一下,為了以後方便自己查閱特此記錄一下。巨集就相當於是文字替換操作,是編譯期語法,並不會占用到記憶體,因為實質上它根本就...