1. 程式人生 > >IOS AutoLayout詳解(一)

IOS AutoLayout詳解(一)

前言:
AutoLayout是讓UI適應控制元件自適應裝置尺寸變化的一項關鍵技術。隨著IOS Device的尺寸越來越多,很難再像以前一樣用一些固定的數字來佈置UI。
AutoLayout的實現有兩種方式

  • Storyboard
  • 程式碼

用Storyboard實現又有三種可選方式

  • 藍色參考線來讓XCode自動建立
  • 滑鼠拖拽來實現
  • XCode中的一些選項按鍵配置

本文的內容包括

  • Storyboard上的一些基礎知識
  • 基於藍色參考線來建立AutoLayout

下一篇文章會繼續更新用Storyboard來建立AutoLayout,然後會用一篇文章講解下如何使用Code來實現AutoLayout

StoryBoard的一些準備知識

1 不同裝置Storyboard的選擇

當同一個程式同時服務不同尺寸的裝置時候,有時候要配置為不同的Storyboard如圖,在紅色圈的wAny hAny(width Any;height Any)中是選擇storyboard的按鍵。預設情況下是一個Storyboard適用所有裝置。


點選wAny hAny,如下圖。紅色圈圈的部分描述了哪些裝置當前Storyboard。

2 Storyboard上的View預覽。
預覽View對於AutoLayout來說比較重要,因為如果每次都Run-Debug,那麼太費時間了。
開啟輔助編輯視窗。(Command+Option+Enter

快捷鍵)
然後,按照如下動圖

開啟輔助編輯視窗。
以下是一個簡單的輔助編輯視窗看不同裝置的效果
這裡寫圖片描述

XCode自動建立AutoLayout

XCode可以自動建立AutoLayout,為什麼我說要基於藍色參考線呢?是因為,如果不基於藍色參考線,自動建立的Layout很可能和想要的差很多。

用藍色參考線來自動建立的過程
1. 按照藍色參考線放置控制元件
這裡寫圖片描述
可以看到,在拖動的過程中出現了藍色參考線

  1. 讓XCode自動建立
    選中Button,然後按照如圖
    這裡寫圖片描述

這樣,效果如下

可以看到,螢幕旋轉,Button始終在右上角。

後續

關於AutoLayout的文章我還會更新兩篇,一篇繼續講解如何用Storyboard上建立,另一篇講解如何用Code實現。

相關推薦

IOS AutoLayout

前言: AutoLayout是讓UI適應控制元件自適應裝置尺寸變化的一項關鍵技術。隨著IOS Device的尺寸越來越多,很難再像以前一樣用一些固定的數字來佈置UI。 AutoLayout的實現有兩種方式 Storyboard 程式碼

iOS UITabBarController用法原理、自定義tabbar

UITabBarController的原理:UITabBarController會一次性初始化所有子控制器,但是預設只加載第一個控制器檢視,其他檢視控制器只初始化預設不會載入,只有當需要顯示的時候才loadView載入,為了能夠將其他子控制器也正常顯示在Tab bar中,我們

elastic-job:數據分片

count 任務 不同的 應該 center shc 偶數 int ext 數據分片的目的在於把一個任務分散到不同的機器上運行,既可以解決單機計算能力上限的問題,也能降低部分任務失敗對整體系統的影響。elastic-job並不直接提供數據處理的功能,框架只會將分片項分配至各

JVM的基本結構及其各部分

後臺 棧幀 結束 依次 方法參數 ati 0.00 實例 同時存在 JVM的基本結構及其各部分詳解(一)(轉載) 1 java虛擬機的基本結構如圖: 1)類加載子系統負責從文件系統或者網絡中加載Class信息,加載的類信息存放於一塊稱為方法區的內存空間。除了類的信息外,方

設計模式

att 定義 面向對象設計 設計 sig com 繼承 行為模式 接口 一、設計模式定義 設計模式(Design Pattern)是一套被反復使用、多數人知曉的、經過分類的、代碼設計經驗的總結。 使用設計模式的目的:為了代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性。

mybatis ------JDBC

jdbc javax 發出 一段 true his 實例 用戶名 移植 1、什麽是MyBatis?   MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,

Maven------ Maven概述

粘貼 cvs 模塊 strong ron 標準化 pom 標準 只需要 1、引言     你能搜到這個教程,說明你對 Maven 感興趣,但是又不是太理解。那麽接下來這個系列的教程將會詳細講解 Maven 的用法,相信你看完之後,一定能對 Maven 的理解更進一步!

.Net AppDomain

() arc .com args [] adas 功能 reading wpa AppDomain是CLR的運行單元,它可以加載Assembly、創建對象以及執行程序。AppDomain是CLR實現代碼隔離的基本機制。 每一個AppDomain可以單獨運行、停止;每個App

防火墻iptables

主從dns服務器 進行 所有 out show mountd 讀取 ppp 概念 -- 防火墻 常見的防火墻 :瑞星 江民 諾頓 卡巴斯基 天網...... iptables firewalld http://www.netfilter.org/ netfilter

Windows滲透利器之Pentest BOX使用

內存 標簽 配置 ram 添加 概覽 測試環境 功能 ruby 內容概覽: 知識科普 優缺點總結 功能參數詳解翻譯: 控制臺參

JVM類加載機制JVM類加載過程

進行 虛擬機啟動 類加載的時機 bsp 參與 tro ext 環境 java代碼 首先Throws(拋出)幾個自己學習過程中一直疑惑的問題: 1、什麽是類加載?什麽時候進行類加載? 2、什麽是類初始化?什麽時候進行類初始化? 3、什麽時候會為變量分配內存? 4、什麽時候會為

Java的反射機制

pbc spa 詳解 uno face target lan tor cin 8n72q傅釁8戰sig叢http://www.docin.com/app/user/userinfo?userid=179185461 8u炊3F7LB椒1http://huiyi.docin.

PHP基礎入門【世界上最好用的編程語言】

轉換成 c語言 127.0.0.1 mac const 讀取 成對 後臺 isset 簡介 ---------  PHP(超文本預處器)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨

Zookeeper:分布式與Zookeeper

zookeeper介紹 分布式 保留本文出自 “小惡魔的家” 博客,請務必保留此出處http://littledevil.blog.51cto.com/9445436/1983260Zookeeper詳解(一):分布式與Zookeeper

dns

dns bind hosts 一:DNS(Domain Name Service),協議 二:DNS服務相關概念 三:DNS的實現方式 四:主配置文件格式 五:測試工具 六:配置正向區域 一:DNS(Domain Name Service),協議 C/S 53/{t

Splay

return 關系 排序樹 影響 div mda 答案 ima 下回 前言 Spaly是基於二叉查找樹實現的, 什麽是二叉查找樹呢?就是一棵樹唄:joy: ,但是這棵樹滿足性質—一個節點的左孩子一定比它小,右孩子一定比它大 比如說 這就是一棵最基本二

Linux防火墻

iptales filter 1.從協議角度,看數據包流程: ######################### # #資源子網:一層 # 用戶空間 # #####

自動化運維工具——ansible

數據 修改時間 們的 ransac 例如 ces 備份文件 其中 其他 ansible 簡介 ansible 是什麽?   ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、chef、func、fabric)的優點,實現了批量系

PHP與Java集成開發

new 編程語言 到你 其中 web-inf request 測試 add 輸入 很久以前,有人從www上看到看到天空上一個很亮的亮點,它就是Java語言,與此同時,在另一個地方一位夢想家也看到了一個亮點,它就是PHP。 時間一天天過去,這兩個亮點也變得越來越亮,很快,它

Ansible

bash share cau 類型 isp 界面 echo unless try_files 一、運維相關概念介紹二、ansible介紹三、ansible命令四、ansible常用模塊五、ansible配置文件詳解一、運維相關概念介紹運維:Opreations1.系統安裝: