屏幕适配Autoresizing / Autolayout / Mansory / 自定义Frame实现

1. 什么是适配:

适应、兼容不同版本不同尺寸的移动智能设备

iPhone尺寸:3.5、4.0、4.7、5.5inch

iPad尺寸:7.9、9.7inch,横竖屏适配

2. 点与像素

非retaina屏:1个点 = 1个像素

retain屏:1个点 = 4个像素

3. 什么是Autolayout

1>  是一种“自动布局”技术,专门用来布局UI界面的

2> 自iOS 6开始引入,由于Xcode 4的不给力,当时并没有得到很大推广

3> 自iOS 7(Xcode 5)开始,Autolayout的开发效率得到很大的提升

4> 苹果官方也推荐开发者尽量使用Autolayout来布局UI界面

5> Autolayout能很轻松地解决屏幕适配的问题

4. Autoresizing

1> Autoresizing了解

Autoresizing:屏幕适配局限性比较大(如不能布局兄弟控件适配),没Autolayout方便

Autoresizing四周的四个线的作用:

1.Autoresizing四周的四根线的作用:

只要勾选上某一根, 那么当前控件距离父控件的距离就是固定的, 当前是多少, 以后永远都是多少

2.Autoresizing中间两条线的作用:

只要勾选上水平方向的线, 那么当前控件的宽度就会随着父控件的宽度等比拉伸

只要勾选上垂直方向的线, 那么当前控件的高度就会随着父控件的高度等比拉伸

3.无论是将子控件固定在父控件的某一个位置

还是让子控件随着父控件的宽高的变化而变化

都是父子关系, 所以Autoresizing只能约束父子控件之间的关系, 不能约束兄弟控件之间的关系(有局限性相比较Autolayout)

2> Autoresizing实例一:放四个View到storyboard四个角,适配不同屏幕尺寸。

步骤:(1)

(2)  设置四周View的指定位置即可。

(3) . 进入preview界面可进行预览视图界面,是否适配成功

5. Autolayout屏幕适配

1> Autoresizing,在Autolayout之前,有Autoresizing可以作屏幕适配,但局限性较大,有些任务根本无法完成

2> 相比之下,Autolayout的功能比Autoresizing强大很多

3> Autolayout的2个核心概念

3.1 参照

3.2 约束

1.约束

每在Storyboard中添加一个设置(autolayout的设置), 就代表添加一个约束

2.错误(红色箭头)

如果看到Storyboard中有红色的箭头, 代表约束有错误

注意: 约束有错误, 不代表运行会错误, 约束有错误同样可以运行

注意: 红色箭头是程序员必须解决的

3.为什么会有约束错误?

3.1缺少约束

3.2约束冲突

3.1缺少约束

>autolayout的本质和frame差不多

>如果通过frame来设置一个控件, 必须设置这个控件的x/y/w/h, 控件才能按照我们的需求显示

>如果是通过autolayout来设置一个控件, 也必须设置这个控件的x/y/w/h, 控件才能按照我们的需求显示

>也就是说, 如果说x/y/w/h只要有一个没有设置都会报错, 就是缺少约束

3.2约束冲突

>约束可以重复添加

>例如先约束宽度等于100, 又添加一个约束, 约束宽度等200, 那么就会报错

红色:

距离顶部有20 == 相当于设置了Y

距离左边有20 == 相当于设置了x

设置宽度等于100

设置高度等于100

4.警告

如果看到Storyboard中有黄色的箭头, 就是警告

> 代表着当前控件预览的位置或者尺寸和我们约束的位置尺寸不一样

注意:黄金警告并不会影响我们运行

注意:黄色箭头, 程序员可以忽略

处理屏幕适配:

第一种方式:通过storyboard右下角图案处,点击可进行处理屏幕适配:

1.对齐方法可设置(storyboard右下角可见),

2、设置相对位置、宽高等

3、设置控件与所有控件的约束操作(删除与更新等操作于约束)

第二种方式:按住“control”键,可以在控件自己,或者直接拖拽到其他控件上,会弹出对话框,可选择添加约束,来适配

注意:往左边相对左边,同理向右边相对右边设置约束,向下相对底部,向上相对顶部

将弹出右框:

小案例:如下:

1.实现红色View宽度 = 蓝色宽度一半:

2.微博小案例,正文不等高,父控件随之动态变化

设置约束还有很多方式,非代码方式就到处吧,大家自己摸索就ok了。

下一将,我们接着讲解Autolayout适配,采用代码方式实现,休息一会再继续,呵呵。

时间: 2024-08-09 02:18:35

屏幕适配Autoresizing / Autolayout / Mansory / 自定义Frame实现的相关文章

iOS开发UI篇—屏幕适配autoResizing autoLayout和sizeClass图文详解

1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很少支持横屏,所以iOS开发者基本不用怎么适配布局,所有的ui控件只要相对父控件布局就可以了,没错autoResizing就是一个相对于父控件的布局解决方法:注意:它只能相对父控件布局:***在xcode中可以通过可视化的界面调整也可以通过代码去控制 在用autoResizing的时候需要关闭autoLayout和sizeclas

iOS 屏幕适配:autoResizing autoLayout和sizeClass

1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很少支持横屏,所以iOS开发者基本不用怎么适配布局,所有的ui控件只要相对父控件布局就可以了,没错autoResizing就是一个相对于父控件的布局解决方法:注意:它只能相对父控件布局:***在xcode中可以通过可视化的界面调整也可以通过代码去控制 在用autoResizing的时候需要关闭autoLayout和sizeclas

iOS中的屏幕适配之Autolayout(初级)

这是第二篇博客啦啦啦,来来来,嗨起来,今天我们要说的时iOS的屏幕适配,随着APPLE推出的手机越来越多,屏幕的尺寸也越来越多,而屏幕的适配确是相当的麻烦,今天我要说的,网上也许早就有了,我只是说出自己的理解(可能不对啊,勿喷....) Autolayout其实就是约束了,今天讲得是代码添加约束,用到的第三方是Masonry,相信代码写约束的都知道这个第三方库,好了,废话不多说,代码搞起 首先你要去下载个Masonry,或者用cocoapods加到工程中,先来个简单点得例子啊,下面请重点看注释啊

iOS开发——屏幕适配篇&autoResizing autoLayout和sizeClass

autoResizing autoLayout和sizeClass详解 1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很 少支持横屏,所以iOS开发者基本不用怎么适配布局,所有的ui控件只要相对父控件布局就可以了,没错autoResizing就是一个相对于父控件的布 局解决方法:注意:它只能相对父控件布局:***在xcode中可以通过可视化的界面调整也可以通过代码去控制 在用

Autolayout屏幕适配——代码实现(苹果公司 / VFL语言 / 第三方框架Masonry)

在讲解如何通过代码来实现屏幕适配前,先来了解一下,屏幕适配中用到的约束添加的规则. 在创建约束之后,需要将其添加到作用的view上 在添加时要注意目标view需要遵循以下规则: 1. 约束规则    1> 添加约束的规则(一) 对于两个同层级view之间的约束关系,添加到它们的父view上 2> 添加约束的规则(二) 对于两个不同层级view之间的约束关系,添加到他们最近的共同父view上 3> 添加约束的规则(三) 对于有层次关系的两个view之间的约束关系,添加到层次较高的父view

登录界面、AutoUtils 屏幕适配、自定义Edittext(显示密码可见和一键清空)和 TextInputLayout的使用。

登录界面: AutoUtils自动屏幕适配: AutoUtils屏幕适配使用的方法 : 1.将AutoUtils类复制到要适配的项目中: 2.在程序的入口(清单文件filter):super.onCreate(savedInstanceState);//屏幕适配,这里是以720*1280分辨率为基准的适配AutoUtils.setSize(this, false, 720, 1280); * 这里我们UI是以1920*1280分辨率做图的,并且是横屏显示:AutoUtils.setSize(th

屏幕适配的简单介绍

这两天上传了一些代码,有的同学反馈没有自动适配,所以现在总结点有关屏幕适配的知识 1 屏幕适配可以使用frame,但是需要多套代码,非常的麻烦 2 可以使用autoResizing适配:Ios6之前出现的,用来约束父子控件之间的关系,和autolayout是冲突的, 两者不能同时使用,外边的四条线段选中,表示距离四周间距是固定的,里面的两个线段,当勾选上的时候,表示不固定,拉伸.不勾选,表示固定. 3 autolayout:Ios7开始大规模使用,既可以设置父子之间的关系,也可以设置同级之间的关

034-iOS屏幕适配-iOS笔记

学习目标 1.[了解]屏幕适配的发展史 2.[了解]autoResizing基本用法 3.[掌握]autoLayout 的基本用法 4.[掌握]autoLayout代码实现 5.[理解]sizeClass的基本用法 一.屏幕适配的发展史 随着iOS屏幕尺寸越来越多样化,屏幕适配也就越来越重要了. iphone1 - iphone3gs时代,window的size固定为(320,480).我们只需要简单计算一下相对位置就好了,不需要做屏幕适配. iphone4 - iphone4s时代,苹果推出了

IOS开发——UI基础-屏幕适配

一.适配 1.什么是适配?适应.兼容各种不同的情况 2.移动开发中,适配的常见种类 2.1系统适配 针对不同版本的操作系统进行适配 2.2屏幕适配 针对不同大小的屏幕尺寸进行适配 二.点和像素 1.在用户眼中屏幕是由无数个像素组成的像素越多,屏幕越清晰 2.在开发者眼中屏幕是由无数个点组成的,点又是由像素组成的像素越多,屏幕越清晰 三.Autoresizing简介 1.在Autolayout之前,有Autoresizing可以作屏幕适配,但局限性较大,有些任务根本无法完成相比之下,Autolay