zoukankan      html  css  js  c++  java
  • SDAutoLayout的使用

    ## 简介
    - IOS布局的三个阶段:MagicNumber -> AutoResizingMask -> AutoLayout
    - 自动布局三大框架:UILayoutConstraint(原生),Masonry,SDAutoLayout
    - 一个视图,两个方向(水平,垂直),四条约束
    - [github地址](https://github.com/gsdios/SDAutoLayout)
    ## 基础
    ###### 属性
    1. left,right,top,bottom;space
    2. width,height;maxWidth,maxHeight,minWidth,minHeight
    3. centerX,centerY;x,y
    4. offset(偏移量,原点在左上角,偏移远离值为正,偏移靠近值为负)
    ######关系
    1. equalTo
    2. spaceTo
    3. ratioTo
    4. is
    ######方法(Block)
    ```
    leftEqualToView(<UIView>) //左边与目标左边齐平
    rightEqualToView(<UIView>) //右边与目标右边齐平
    topEqualToView(<UIView>) //顶边与目标顶边齐平
    bottomEqualToView(<UIView>) //底边与目标底边齐平
    centerXEqualToView(<UIView>) //中心点X坐标与目标中心点X坐标相同
    centerYEqualToView(<UIView>) //中心点Y坐标与目标中心点Y坐标相同
    widthEqualToHeight() //自身宽高相等
    heightEqualToWidth() //自身高宽相等
    ```
    ```
    leftSpaceToView(<UIView>,<CGFloat>) //左边到目标view的距离,当目标是父视图,参照的是目标的左边(同边),否则,参照的是目标的右边(对边)
    rightSpaceToView(<UIView>,<CGFloat>) //右边到目标view的距离(同理)
    topSpaceToView(<UIView>,<CGFloat>) //顶边到目标view的距离(同理)
    bottomSpaceToView(<UIView>,<CGFloat>) //底边到目标view的距离(同理)
    spaceToSuperView(UIEdgeInsetsMake(top, left, bottom, right)) //快捷设置到父视图的上左下右边距
    ```
    ```
    centerXIs(<CGFloat>) //设置中心点X坐标
    centerYIs(<CGFloat>) //设置中心点Y坐标
    xIs(<CGFloat>) //原点x坐标
    yIs(<CGFloat>) //原点y坐标
    widthIs(<CGFloat>) //宽度
    heightIs(<CGFloat>) //高度
    maxWidthIs(<CGFloat>) //最大宽度
    maxHeightIs(<CGFloat>)  //最大高度
    minWidthIs(<CGFloat>) //最小宽度
    minHeightIs(<CGFloat>) //最小高度
    ```
    ```
    widthRatioToView(<UIView>,<CGFloat>) //宽度是目标宽度的多少倍
    heightRatioToView(<UIView>,<CGFloat>) //高度是目标高度的多少倍
    autoHeightRatio(<CGFloat>) //自身高宽比;特别的,label传入0,可实现文字高度的自适应
    autoWidthRatio(<CGFloat>) //自身的宽高比
    ```
    ## 场景
    ######label的自适应
    ```
    ```
    ######并排(列)多个label的压伸
    ######imageview的自适应
    ######button的自适应
    ######通过子视图的布局确定父视图的size
    ######scrollview的contentsize
    ######cell的height
    ######并排(列)多个等宽(高)变间隙视图
    ######并排(列)多个变宽(高)等间隙视图

    ## 提示
    - 先添加到父视图,再布局
    - 目标视图必须是父视图或该父视图的子视图
    - 由子视图确定父视图的size时,父视图变动的方向(宽/高),子视图必须能提供确切的值,最后设置父视图变动方向的约束(兜底)
    - 不要以父视图变动的方向为参照物
    - 当视图的某些约束需要数据才能确定时,先不设置,延后到得到数据的时候再设置

    ## 错误

  • 相关阅读:
    python基础——单元测试
    python基础——调试
    python基础——错误处理
    python基础——使用元类
    python基础——多重继承
    python基础——使用@property
    sql server 2000的安装
    [转载]目前流行的缺陷管理工具
    个人工作中ssd、audio python脚本总结
    python Synchronization between processes
  • 原文地址:https://www.cnblogs.com/gt1989/p/7641944.html
Copyright © 2011-2022 走看看