• 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时,父视图变动的方向(宽/高),子视图必须能提供确切的值,最后设置父视图变动方向的约束(兜底)
    - 不要以父视图变动的方向为参照物
    - 当视图的某些约束需要数据才能确定时,先不设置,延后到得到数据的时候再设置

    ## 错误

  • 相关阅读:
    java客户端调用c#的webservice服务
    hibernate 中如何用注解映射定长字符类型char(2)
    使用spring提供的LocalSessionFactoryBean来得到SessionFactory
    执行JDBC的executeUpdate()方法时,报错:数据类型不一致,应为number,但却为binary
    c++并发编程之进程创建(给那些想知道细节的人)
    c++编程之内存模型
    c++多线程编程互斥锁初步
    c++多线程编程——初探
    字符串匹配算法之————KMP算法
    字符串匹配算法第一篇——暴力匹配
  • 原文地址:https://www.cnblogs.com/gt1989/p/7641944.html
Copyright © 2020-2023  润新知