iOS屏幕適配方案-Auto Layout

市場上的android手機五花八門。各種尺寸的屏幕讓android程序員們比較頭疼。

也有一些大神寫了一些博客提出了自己的觀點。iOS貌似也迎來了大屏6+,因此屏幕適配的問題也是有滴,因此蘋果也有自己的方法-auto Layout 。

本人初學iOS。今天學了自己主動布局。在學習的過程中,畢竟還是有些知識點沒有接觸到的,因此寫這篇博客來深入的了解一下Auto Layout。

官方解釋:
Auto Layout 是一個系統,能夠讓你通過創建元素之間關系的數學描寫敘述來布局應用程序的用戶界面。——《Auto Layout Guide》
Auto Layout 是一種基于約束的。描寫敘述性的布局系統。——《Taking Control of Auto Layout in Xcode 5 - WWDC 2013》
我們給布局添上約束 (Constraints)來給控件定位和控制大小。而不是像android和html5一樣通過size等屬性來控制布局。iOS控件貌似沒有size概念,而是全然通過constraints來控制大小。

這里寫圖片描寫敘述
打開storyboard。我在頂部和底部拖了兩個控件。看圖一目了然。右邊iPhone4底部控件看不到了。iPhone6+控件已經偏出。

接下來來看怎樣解決,先看張圖:
這里寫圖片描寫敘述
1、選中view controller
這里寫圖片描寫敘述
2、按住ctrl鍵。往上拉,選中 Top Space to Top Layout Guide
這里寫圖片描寫敘述
這里寫圖片描寫敘述
此時我們看到的線已變成orange顏色,說明加入的約束不夠。繼續往左和右邊拉。
3、顏色變成綠色就算好了。


這里寫圖片描寫敘述
4、底部的控件一樣加入約束。

測試結果:
這里寫圖片描寫敘述
適配成功。
總結:
直接說以后都應該使用storyboard+autolayout感覺是不負責的說法,可是深入思考autolayout是非常有必要的!
例如以下情況使用autolayout會有幫助:
當須要展示的內容非常多而且尺寸不固定;
程序需支持屏幕旋轉(主要是iPad程序。iPhone程序橫屏的場景有點非主流,也不排除..手游..);
但storyboard中使用autolayout有利有弊。優點當然是可視化,實現簡單功能非常節省時間,但也有弊端,比如不小心移動一個控件就會讓弄亂那些約束

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258079.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258079.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258079.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Exercise 12: Prompting People

age raw_input("How old are you? ") height raw_input("How tall are you? ") weight raw_input("How much do you weigh? ") print "So, youre %r old, %r tall and %r heavy." % ( age, height, weight) 轉載于:https://www.…

一年一循環

一年了,沒怎么關注博客園,回來看看。 希望自己今后多學多記錄多分享。轉載于:https://www.cnblogs.com/Chinarain/p/4974904.html

JAVA三角海倫公式,海倫公式求三角形面積出錯求教

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓就下面這個程序 輸入其他的數字都可以算出面積 但是當輸入3,4,6時 計算出面積為零 求吧友指出錯誤在哪package javaapplication17;import java.util.Scanner;public class JavaApplication17 {public static void main(String[] ar…

虛擬機里面安裝Openfiler 2.99

2019獨角獸企業重金招聘Python工程師標準>>> 簡介 Openfiler 由rPath Linux驅動,它是一個基于瀏覽器的免費網絡存儲管理實用程序,可以在單一框架中提供基于文件的網絡連接存儲 (NAS) 和基于塊的存儲區域網 (SAN)。Openfiler 支持 CIFS、NFS、…

win10如何搭建php,Win10系統怎么搭建php環境 win10搭建PHP環境方法

Win10系統怎么搭建php環境?win10搭建PHP環境方法。在今天的Win10系統使用教程中,我們將給大家分享的是在Win10系統下搭建Apache和PHP的開發環境的方法。可能有網友會問:Win10系統搭載Apache和PHP的開發環境的方法是不是與Win7/Win8.1的差不多…

關于jmf不能播放mp3的問題解決

想寫個JAVA的MP3音樂管理器,使用JMF插件,但發現運行時總報一個異常:Unable to handle format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 16000.0 frame rate, FrameSize32768 bitsFailed to realize: com.sun.media.P…

LINK:fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞

原文地址:http://yacare.iteye.com/blog/2010049 很多伙伴在更新VS2010,或者卸載VS2012安裝2010后,建立Win32 Console Project/MFC項目時會出現"LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞"的錯誤。 錯誤描…

網站出現403 Forbidden

1, 你在一定時間內過多地訪問此網站(一般是用采集程序),被防火墻拒絕訪問了 2, 網站域名解析到了空間,但空間未綁定此域名 3, 你的網頁腳本文件在當前目錄下沒有執行權限 4, 服務器繁…

matlab離散信號卷積和,信號與系統實驗(MATLAB版)實驗7離散信號的卷積和.ppt

一、實驗目的   1 熟悉離散時間信號卷積的定義、表示以及卷積的結果;    2 掌握利用計算機進行離散時間信號卷積運算的原理和方法;    3 熟悉離散時間信號的相關計算方法;    4 熟悉離散時間信號卷積運算函數conv和deconv的應用。   2. 卷積計算的幾何解法…

學Linux從編譯命令開始——arm-linux-gcc常用參數講解

1.想要編譯出ARM平臺上的代碼,需要四個步驟,預處理,編譯,匯編,鏈接。 arm-linux-gcc有諸多選項 arm-linux-gcc -o main main.c  不加-c、-S、-E等參數,則同時進行四個步驟,生成可執行文件。 其…

【轉】如何在編程生涯中有一個好的開端

本文來自:http://www.techug.com/how-get-jump-start-your 作者:http://www.techug.com/author/admin(中文,譯作者) 作者:http://java.dzone.com/users/simpleprogrammer(英文,原作者…

git的使用1[轉]

在應用程序開發過程中,很重要的一部分工作就是如何進行源碼的版本控制。當代碼出現問題時,我們就需要將代碼恢復到原先正常的版本。如果是多個人共同開發一個項目,那么代碼的控制就會非常復雜。幸運的是,開發者不需要自己控制這些…

matlab做比例積分微分控制,收放卷卷徑計算+閉環擺桿控制參數自適應PID控制算法(變比例變積分變微分)介紹...

項目簡介最近在一個客戶現場搞熔邊機項目,涉及到收放卷工藝的卷徑計算,同時張力控制使用的是擺桿,然后通過PID控制輸出輔助轉速補償收卷伺服速度。單一的PID參數不能自動適應卷徑變化,如在小卷徑200mm下調試整定出的一組PID參數,當…

如何檢測支付寶接口中notify_url.php有沒有返回,支付寶中的手機網站支付接口,php版 notify_url.php 異步通知頁面未成功執行...

require_once("alipay.config.php");require_once("lib/alipay_notify.class.php");$alipayNotify new AlipayNotify($alipay_config);$verify_result $alipayNotify->verifyNotify();if($verify_result) {//驗證成功$notify_data $alipayNotify->…

openfire學習4---android客戶端聊天開發之聊天功能開發

前面我們已經把服務器搭建完成,并且在客戶端實現了登錄了。 和我們使用的QQ一樣,想一想,登錄成功之后呢?肯定是要有一個好友列表,通過這個列表,我們可以選擇我們需要聊天的好友。 這里我們先研究下 xmpp的數…

運用runtime與AOP實現oc中的kvo

前言: oc中實現的kvo觀察者模式比較呆板,不支持block,運用runtime機制將其進行實現。 詳細實現步驟: 一:給NSObject添加分類(添加相應的添加觀察者,刪除觀察者的方法),這樣凡是繼承NSObject的類生成的對象都會擁有這兩個方法。 二:在添加觀察者的方法中,檢查本類是否…

CentOS下IPTABLES配置詳解

iptables是與Linux內核集成的IP信息包過濾系統,其自帶防火墻功能,我們在配置完服務器的角色功能后,需要修改iptables的配置。配置CentOS和Ubuntu等linux服務器時需要對服務器的iptables進行配置,以下是iptables常見的幾種配置方法…

mysql教程詳解之多表聯合查詢,MYSQL教程mysql多表聯合查詢返回一張表的內容實現代碼...

搜索熱詞《MysqL教程MysqL多表聯合查詢返回一張表的內容實現代碼》要點:本文介紹了MysqL教程MysqL多表聯合查詢返回一張表的內容實現代碼,希望對您有用。如果有疑問,可以聯系我們。今天在使用MysqL語句的時候老是報錯,語句如下:sq…

C#實現冒泡排序

一、算法原理 1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的數。 3、針對所有的元素重復以上的步驟,除了最后一…

PHP - 使用 Pear 進行安裝和卸載包

安裝: 首先運行到php根目錄: 輸入要安裝的包文件名: 使用語法: pear install 要安裝包的名稱 回車確認: 如果沒有其他意外,顯示安裝成功。查看安裝的包的信息: 語句: pear info 包的…