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有利有弊。优点当然是可视化,实现简单功能非常节省时间,但也有弊端,比如不小心移动一个控件就会让弄乱那些约束
iOS屏幕适配方案-Auto Layout的更多相关文章
- Web 端屏幕适配方案
基础知识 像素相关 1.像素 :像素是屏幕显示最小的单位. 2.设备像素 :设备像素又称物理像素(physical pixel),设备能控制显示的最小单位,我们可以把这些像素看作成显示器上一个个的点. ...
- Unity2D多分辨率屏幕适配方案(转载)
一下内容转自:http://imgtec.eetrend.com/forum/3992 此文将阐述一种简单有效的Unity2D多分辨率屏幕适配方案,该方案适用于基于原生开发的Unity2D游戏,即没有 ...
- [原创]一种Unity2D多分辨率屏幕适配方案
此文将阐述一种简单有效的Unity2D多分辨率屏幕适配方案,该方案适用于基于原生开发的Unity2D游戏,即没有使用第三方2D插件,如Uni2D,2D toolkit等开发的游戏,NGUI插件不受这个 ...
- 一种Unity2D多分辨率屏幕适配方案
http://www.cnblogs.com/flyFreeZn/p/4073655.html 此文将阐述一种简单有效的Unity2D多分辨率屏幕适配方案,该方案适用于基于原生开发的Unity2D游戏 ...
- iOS Programming Introduction to Auto Layout 自动布局
iOS Programming Introduction to Auto Layout 自动布局 A single application that runs natively on both t ...
- JavaScript强化教程 —— Cocos2d-JS的屏幕适配方案
1. 设置屏幕适配策略(Resolution Policy) 如果你还没有用过Resolution Policy,只需要在游戏载入过程完成之后(cc.game.onStart函数回调中),调用下面的代 ...
- iOS屏幕适配
## iOS屏幕适配 ### iOS屏幕适配发展史 1> iPhone4以前(没有iPad) * 不需要屏幕适配 2> iPad.iPhone5等设备出现 * 需要做横竖屏适配 * aut ...
- Cocos2d-JS的屏幕适配方案
Cocos2d引擎为游戏开发者提供了屏幕适配策略(Resolution Policy)解决方案. 使用方式 1. 设置屏幕适配策略(Resolution Policy) 如果你还没有用过Resolut ...
- cocos2dx屏幕适配方案
我们在利用cocos2dx来开发游戏时,在开始时就不可避免的会遇到屏幕适配问题,来使我们的游戏适应移动终端的各种分辨率大小.目前,大家采用的屏幕适配方案不一,网上的资料也比较丰富,下面我也将自己使用的 ...
随机推荐
- python 模块-easygui.buttonbox
2018-03-0315:43:11 ): Yes_or_No = easygui.buttonbox("是否良品?", choices=['Yes', 'No', '退出']) ...
- LR接口测试---webservices
//================================================================================== /* //事务开始 lr_st ...
- shim和polyfill有什么区别
在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别? 一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手 ...
- spark查看stage和tasks信息
spark提供了web-ui接口.外部命令等多种方法监视spark程序的执行状态.利用spark的监视功能,可以方便的查看spark应用程序执行的状态,具体包括:1)stage和tasks列表信息 ...
- setTimeout 0
setTimeout 0 就是把事件放到下一次事件循环时调用,至少要一个时钟之后: ); console.log('this should before setTimeout 0'); var i=0 ...
- windows2008 rs+sql 2008 下配置站点权限
几点注意 Windows 2008 iis7.5 1 建立应用程序池 2 文件目录的权限加上 IIS AppPool\应用程序池名称 (找不到直接录入) 3 文件目录要给 IUser权限,不然出错. ...
- 自学php【一】 任务:图片上传即时可见
工作已经快2周了,头儿给派了个任务做个企业站!这几天正在紧锣密鼓的作战中!等忙完了这个活!写下自己的学习心得体会!与看到文章的您一起分享! 在这里记录每次遇到的难题,如何解决的! 今天要做的功能就是实 ...
- QT 杂记
1.按F4切换designer和Edit视图. 2.加载同目录下的js文件: import "XXX.js" as MyJs //首字母一定要大写 3.qml 引用的js中对象.字 ...
- (独孤九剑)--MySQL入门
:[一]概论 (1)什么是 MySQL? 一种关系型开源数据库,定义了存储信息的结构. 在数据库中,存在着一些表.类似 HTML 表格,数据库表含有行.列以及单元. 在分类存储信息时,数据库非常有用. ...
- document.documentElement
1,释意document.documentElement 属性可返回文档的根节点.2,兼容在IE怪异模式下(IE8及以下)无法获取到 HTML标签,用document.body代替: 其余兼容问题参考 ...