iOS開發之autoLayout constraint

來源:互聯網
上載者:User

標籤:

前言

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

約定

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

基礎

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

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

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


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

編譯結果

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

需求

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


豎屏


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

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


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

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


    Update Frame
  • 5、現在同時選中Buttontext Field,點擊Align 按鈕,勾選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 按鈕,設定左邊距0和高度40,點擊 Add 2 Constraints
    高度40,條件一
    左邊距,條件二
    隱含的,寬度是從父容器到搜尋按鈕的左邊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.