您当前的位置: 首页 >  ios

white camel

暂无认证

  • 2浏览

    0关注

    442博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

iOS 一一 AutoLayout之XIB实现

white camel 发布时间:2017-08-09 22:45:17 ,浏览量:2

随着iOS设备屏幕尺寸的增多,当下无论是纯代码开发还是Xib/StoryBoard开发,自动布局已经是必备的开发技能了。

我使用自动布局也有一段时间了,遇到了不少问题,在解决的过程中也收获了很多知识。尤其是在使用熟练之后开发速度上的提升非常明显。这里把AutoLayout的基本使用和个人使用心得汇总一下,希望能帮助到大家!

适配的概念

适配主要分两种

  • 系统适配

    系统适配主要指适配不同版本系统,如 iOS 6(拟物化) 到 iOS 7(扁平化)两个系统系统的适配,我们需要写不同的代码来保证项目在不同系统上的美观与可用。

  • 屏幕适配

    屏幕适配主要是针对不同尺寸的屏幕进行适配,同一个页面再不同尺寸屏幕上的布局,如Safari在手机横竖屏下的布局等等。

常见设备的分辨率:

Snip20170313_1.png
屏幕适配发展史
  • iPhone 4s 以前的时代

iPhone 4s 和之前设备的屏幕都是3.5英寸,可以说没有屏幕适配,所有的坐标点就是 320*480. 适配完全使用frame、bounds、center进行计算,代码基本写死。

// 直接写死
UIImageView *iv = [UIImageView new];
iv.frame = CGRectMake(50, 300, 200, 80);
[self.view addSubview:iv];
  • iPad、iPhone横屏时代

    • 出现 AutoResizing 技术

      • 优点:

        • 解决了父子控件相对位置的问题
        • 子控件可根据父控件的行为发生相对应的变化
        • 让横竖屏的适配变得简单
        • 无法处理兄弟控件相对位置的问题
      • 使用前提:

        • 关闭AutoLayout
      • 局限性:

        • 只能解决父子控件的相对关系,
        • 无法解决兄弟控件之间的相对关系
    • AutoResizing在Xib中的使用介绍

      在Xib中主要有6根线来设置AutoResizing

Snip20170313_2.png

外部四根线

外部四根线分别表示上、下、左、右四个方向,子控件相对于父控件的距离。
实线:表示固定位置
虚线:表示非固定位置

**内部两根线**

内部两根线分别表示水平和竖直方向,子控件是否根据父控件等比例缩放。
实线:该方向上跟随父控件等比缩放
虚线:该方向上不跟随父控件等比缩放


- **AutoResizing在代码中的使用介绍**

通常代码中子控件在添加到父控件之前设置AutoResizing对应的属性值,其代码属性值和Xib中相反,代码中设置可变部分,Xib中是选中部分为固定不变的。
    // 上下左右四个方向参数(与Xib中设置相反)
    UIViewAutoresizingNone                 = 0, 
    UIViewAutoresizingFlexibleLeftMargin   = 1             
关注
打赏
1661428283
查看更多评论
0.0638s