iOS開發之autoLayout constraint

來源:互聯網
上載者:User

標籤:編譯   長度   mon   strong   alt   upload   load   line   center   

前言

ios裝置的尺寸越來越多,針對一款app可能要適配到多種裝置。多種尺寸。所以。我們期望我們的app可以autoLayout。本文主要介紹在Xcode中使用constraint。未來會不定期對此文進行更新。

約定

本文中view指代從Objuect Library中拖拽出來的各種view

基礎

一個view在介面顯示,至少有三種決定條件

  • 一、自身大小:如width、height
  • 二、相對於父容器的位置:如固定起始座標位置或相對位置
  • 三、相對於兄弟view的位置:如頂部對齊、左右距離、堆疊層次
思路

storyboard中,拖拽出來的view都有預設的樣式,在拖動的過程中會有藍色的輔助線,協助我們布局。可是位置大小等都是固定的,我們須要給每一個view設定constraint,告訴它在不同的情況下應該怎樣表現。


輔助線
編譯執行 Label並沒有垂直水平置中

編譯結果

布局的過程,就是確定view的水平位置、垂直位置以及相對位置

需求

一種常見的情況:一個搜尋方塊,一個搜尋button
搜尋方塊:長度要隨著介面變化進行伸縮。與確定button間距20,距離左邊0。頂部10,高40
確定button:頂部10,右邊0,與搜尋方塊間距20,寬50。高40
先來看下終於效果


豎屏


旋轉屏實現步驟
  • 1、拖拽一個text Field,一個Button到storyboard
  • 2、注意storyboard底部的button

    constraintbutton
    三個button各自是
    Align : 主要用來進行兄弟view對齊
    Pin :自身大小、相對容器位置
    Resolve auto layout issues :應用constraint後更新storyboard
  • 3、選中Button ,點擊Pinbutton,上邊距10,分別設定左邊距20,右邊距0,高度40,寬度50(button的寬度基本是固定的)
    寬度和高度都是描寫敘述自身大小,條件一
    上邊距和右邊距都是相對父容器,條件二
    左邊距是相對於兄弟view的位置,條件三


    Button constraint
    點擊 Add 5 Constraints
    結果就變成下邊的樣子了

    結果
  • 4、這個時候,我們點擊Resolve auto layout issues ,並選擇Selected Views下的Update Frame


    Update Frame
  • 5、如今同一時候選中Buttontext Field,點擊Align button。勾選Top Edges,從icon上我們就能夠看出來,是頂部對齊的意思
    頂部是相對於兄弟view的位置。條件三。
    同一時候。隱含的text Field相對父容器頂部的位置和Button一樣,條件二


Top Edges

點擊 Add 1 Constraints


Add 1 Constraints

點擊Resolve auto layout issues ,選擇Selected Views下的Update Frame


Update Frame
  • 6、如今選中text Field,點擊Pin button。設定左邊距0和高度40。點擊 Add 2 Constraints
    高度40。條件一
    左邊距,條件二
    隱含的,寬度是從父容器到搜尋button的左邊20的位置,條件一


設定 text Field左邊距

點擊Resolve auto layout issues ,選擇Selected Views下的Update Frame


Update Frame結果

改動Button的文字為搜尋就算完畢啦~


iOS開發之autoLayout constraint

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.