IOS开发-13.Autolayout概述

来源:互联网 发布:中至数据集团主要业务 编辑:程序博客网 时间:2024/06/08 18:56

1.适配的基本概念

  • 目前iPhone的尺寸一共有3.5(iPhone 4S以前)、4.0(iPhone 5/5S)、4.7(iPhone 6)、5.5(iPhone 6plus)
  • iPad目前主要是7.9和9.7两种,加上传闻苹果将发布12.9的iPad pro,以及iPad的横竖屏的适配
  • 我们针对不同的屏幕尺寸,调整界面布局称之为屏幕匹配

2.点和像素的概念

  • 在用户眼中,屏幕是由无数个像素组成的,像素越多,屏幕越清晰
  • 在开发者眼中,屏幕是由无数个点组成,点又是由像素组成
  • 在早期,iPhone分为非Retina屏和Retina屏 这里写图片描述

  • 各设备分辨率,我们开发人员只需关注各个尺寸的点即可 这里写图片描述


3.Autolayout概述

  • 此前说过Autolayout相当于autoresizing的加强版,自IOS 6开始引入,由于Xcode 4对Autolayout的支持不是很好,所以刚推出时并没有得到很大的推广
  • 自IOS 7(即Xcode 5 )开始,Autolayout的开发效率得到了很大的提升,而且苹果官方也推荐开发者尽量使用Autolayout来布局界面
  • Autolayout能够很轻松的解决屏幕适配问题,也解决了autoresizing中兄弟控件不能添加约束的问题

4.基本属性界面介绍

  • 此前提过xcode 6之后创建新的项目都是默认设置为autolayout布局的,我们先勾选掉sizeclasses,以便说明autolayout的强大之处
    这里写图片描述
  • 设置对齐方式(最后两项对齐设置只需一个控件) -
  • 设置约束条件 这里写图片描述
  • 设置约束刷新和约束移除 这里写图片描述

5.添加约束说明

  • 在storyboard添加一个设置,就代表添加一个约束
  • 若是在storyboard中看到一个红色的箭头如下图,代表约束有错误,不代表运行会报错,约束有错误同样可以运行 这里写图片描述
  • 约束错误的产生:
    • autolayout的本质和frame差不多 + 就行设置frame一样,autolayout也必须同时设置x/y/w/hx/y/w/h,控件才能按照我们的需求显示
    • 约束冲突,由于约束可以重复添加,那么添加同样位置的不同约束条件就会报错
  • 若是在storyboard中看到一个黄色的箭头如下图,代表当前控件预览的位置和尺寸和我们约束的不太一样,这个并不影响我们运行
    这里写图片描述

  • 约束计算说明
    这里写图片描述


6.添加约束的规则

  • 规则1:
    这里写图片描述
    这里写图片描述
  • 规则2:
    这里写图片描述
    这里写图片描述

  • 规则3:
    这里写图片描述
    这里写图片描述


0 0