屏幕适配

首先来简单的认知屏幕适配的发展历史

  • iPhone3GS\iPhone4

    • 屏幕尺寸固定,没有屏幕适配
    • 全部用frame、bounds、center进行布局
    • 很多值固定:坐标值、宽度高度值全部写死,网上一些老的代码都是这样的UIButton *btn = [[UIButton alloc] init];btn.frame = CGRectMake(0, 0, 320 - b, 480 - c);UIView *view = [[UIView alloc]init];view.frame = CGRectMake(20,20,50,100);...⚠完全没有适配可言,全部是固定的值
  • iPad出现、iPhone横屏

    • 出现Autoresizing技术
      • 让横竖屏适配相对简单
      • 让子控件可以跟随父控件的行为自动发生相应的变化
      • 现在使用的前提是:需要关闭Autolayout功能
      • 局限性
        • 只能解决子控件跟父控件的相对关系
        • 不能解决同级控件之间的相对关系
  • iOS 6.0(Xcode4)开始
    • 出现了Autolayout技术
    • 从Xcode5.0(iOS 7.0)开始,开始流行Autolayout

Autolayout讲解

  • storyboard和xib上Autolayout的使用

    • Add New Constrains 设置单个控件的约束能设置很多约束,详解见图
    • 点击
      图片

      会出现下图,还是较清楚的解释:
      图片
    • 在iOS8中加入了一个constrain to margins
      图片
    • 系统默认帮你选中,则会依照layoutMargins的位置作为起点来进行约束,左右会有8个点的空挡,而是从8个点后开始计算约束,而没有选中时,从屏幕的0点开始计算。(一般我都直接取消选中,不然会与预想的不一样,不知道你们有么有遇见过这样的问题)

    • Update Frames 有三个选项

      图片
    • 默认是None在约束后不会有位置发生变化,但会出现一个黄色的框框,就是你新约束的frame,并且这个时候会有个黄色警告箭头表示当前view的frame不匹配,需要更新frame。
      ! 点击黄色尖头后会告诉你警告的原因.

      图片
    • 还有个红色的箭头,表示当前有错误约束:1.约束冲突,需要删除冲突的部分条件。2.约束条件不完善,需要添加完善约束(就是让编译器明确view的frame)


  • 选中Items of New Constrains会设置新frame同时把选中的控件的frame更新,即不会出现黄色框框。
  • 选中All Frames in container,如果你所有的控件都已经约束好了,那可以选择这个选项,一次性更新所有的控件。
  • Add New Alignment Constrains 设置多个控件之间的约束

    点击

    图片

    会出现下图
    图片
    图片还是能较清晰的解释如何设置约束
    以上两个按钮能满足你大多数的控件约束,也非常的方便,当你想修改之前约束的条件,方法也非常多。
    • 选中控件然后点击
      图片

      会出现当前控件的约束
      图片
      点击约束条件中的Edit就可以修改当前设置。
    • 删除原先约束,重新设置约束,比较笨的方法但也是可以达到效果。
    • 还可以直接选中storyboard或xib中控件约束好的线,双击也是能修改的
      图片
      看个人爱好吧!
      • 对于删除错误的约束也有多种方法
        图片
        图中选中的红框中,都可以删除某一条约束。
      • 还有一次性删除约束的方法
        图片
        图中有两个Clear Constrains,上面的代表清除当前选中view的所有约束,下面的会清除所有view的约束,不管是否选择,所以不要轻易选择下面的Clear Constrains,以免之前约束都作废,还是会让人抓狂滴。
    图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值