All Versions
46
Latest Version
Avg Release Cycle
92 days
Latest Release
919 days ago

Changelog History
Page 1

  • v1.9.8 Changes

    August 04, 2020

    ⚡️ Update

    1. 重写布局库的内部实现,代码更具可读性,计算性能得到进一步的提升,重写了相对布局的内部实现。
    2. 将布局的属性leftPadding,rightPadding,topPadding,bottomPadding,leadingPadding,trailingPadding改名为paddingLeft,paddingRight,paddingTop,paddingBottom,paddingLeading,paddingTrailing。原来的属性名保留但是会提示过期。
    3. 修复布局套布局时进行尺寸评估可能会不准确的BUG。issue#116
    4. 修复弹性布局MyFlexLayout在单行时子视图不被拉伸的BUG。
    5. 修复相对布局子视图整体水平居中时又设置了padding时的BUG。issue#120
    6. 优化横竖屏不同布局展示的支持能力,由原先的设备方向变为优先考虑接口方向。issue#123
    7. 修复相对布局中子视图的高度等于布局高度,宽度等于自身高度的BUG。issue#129
  • v1.9.1 Changes

    December 23, 2019

    ➕ Added

    1. 流式布局和线性布局添加对停靠属性gravity的两个新枚举值: MyGravity_Vert_Among、MyGravity_Horz_Among的支持。这两个枚举值可以实现间距的等分拉伸功能。between、around、among这三个拉伸的区别在于和父视图之间的间距上。
    2. 流式布局添加最后一行的停靠策略属性lastlineGravityPolicy,用来指定流式布局最后行的停靠策略。
    3. 流式布局、浮动布局、线性布局添加对行内浮动间距的支持。我们可使用setSubviewsSize函数中的centered参数来指定每一行的头尾视图和父布局视图之间的间距也是浮动的。

  • v1.9.0 Changes

    October 21, 2019

    ➕ Added

    1. 添加新的布局:MyFlexLayout。 MyFlexLayout布局是从MyFlowLayout派生的布局,它兼容flexbox的所有特性,以及提供了和flexbox相同的设置语法。您可以通过MyFlexLayout中提供的flex属性并用链式语法的形式来设置布局特性,同时还可以通过视图提供的扩展分类flexItem属性来设置布局内子视图的布局特性。具体可以参考:FLXTest1ViewController 中的介绍和使用方法

    ✅ 2. 添加尺寸对象MyLayoutSize和位置对象MyLayoutPos的最值约束的设置。您可以将视图的尺寸设置为某一个尺寸集合中的最大值或者最小值。在相对布局中您也可以将视图的位置设置为某一个位置集合中的最大值和最小值。比如A的宽度是B,C,D三个视图宽度中的最大值,则可以设置为:A.widthSize.equalTo(@[B.widthSize,C.widthSize,D.widthSize].myMaxSize) 具体实例请参考:RLTest6ViewController

    1. 添加对视图尺寸和位置进行压缩的设置。在线性布局和流式布局以及框架布局中当子视图的尺寸和间距总和大于布局视图的尺寸时,您可以通过MyLayoutSize以及MyLayoutPos中提供的新属性shrink来设置压缩的比重,默认情况下压缩比重的值是0表示不压缩,比重越大压缩度越大。具体的使用方法可以参考:AllTest7ViewController 中的第12个demo。

    2. 针对线性布局、流式布局中的gravity属性添加了Around和Stretch两种停靠和对齐能力,其中的Around和Between的区别是前者的首行和尾行的拉伸间距是其他行之间间距的一半,而后者则首行和尾行的间距不会被拉伸。Stretch和Fill的区别是前者对明确设置了尺寸的视图不进行尺寸拉伸,而后者则是对所有视图都进行尺寸拉伸

    3. 添加和抽象对拖动的支持,系统提供了一个新的类MyLayoutDragger,你可以用这个类中提供的方法就可以很轻易的实现对布局视图中的子视图进行拖放操作。具体使用方法可以参考:FLLTest3ViewController

    4. 添加对iOS13的黑白模式适配的支持,解决了边界线的黑白模式适配的问题。

    5. 流式布局MyFlowLayout中添加单独设置行内停靠对齐的支持属性:lineGravity,这个属性是一个block类型的对象,我们可以借助这个属性来实现对布局内每行的停靠对齐操作。具体实例可以参考:FLLTest4ViewController

    6. 流式布局MyFlowLayout添加属性isFlex,这个属性默认是NO,当设置为YES时则表明让流式布局来兼容flexbox的特性。具体兼容可以参考属性中的注释。

    7. 流式布局和浮动布局添加了行内的基线对齐的功能。您可以将gravity或者arrangedGravity的值设置为MyGravity_Baseline。

    8. 浮动布局添加对尺寸自适应的支持。您可以在垂直浮动布局中将布局视图的宽度设置为自适应,同时可以在水平浮动布局中将布局视图的高度设置为自适应。

    9. 在线性布局、流式布局、浮动布局中实现了可以在尺寸自适应的模式下gravity的停靠属性生效的能力。解决了issue#102

    10. 在线性布局、流式布局、浮动布局中实现了设置尺寸自适应并且设置了最大最小值约束的情况下子视图被正确布局的功能。

    11. 扩充的流式布局中的pagedCount的能力,由原先的必须是在滚动视图的子视图下生效改为可以在任意时刻生效。

    12. 改变对布局动画方法:layoutAnimationWithDuration:的实现逻辑,并新增加了动画的选项以及动画完成后的处理block机制,具体使用请参见方法:layoutAnimationWithDuration:options:completion:

    ⚡️ Update

    1. 更新了对尺寸自适应属性的设置方式。不再建议使用wrapContentWidth进行宽度自适应设置,而是改为myWidth = MyLayoutSize.wrap或者widthSize.equalTo(@(MyLayoutSize.wrap))进行宽度自适应设置。不再建议使用wrapContentHeight进行高度尺寸自适应设置,而是改为myHeight= MyLayoutSize.wrap或者heightSize.equalTo(@(MyLayoutSize.wrap))进行高度自适应设置。 对于宽度是否自适应的判断则可以用myWidth == MyLayoutSize.wrap或widthSize.iswrap进行判断,高度也是一样的。
    2. 在框架布局、线性布局、相对布局中子视图如果同时设置了上下边距或者左右边距,并且同时设置了高度或者宽度约束时则子视图的高度或者宽度不再是由布局视图决定而是由自身设置的高度或者宽度约束决定。解决了issue#100

    3. 将浮动布局的noBoundaryLimit属性设置为过期,这个属性将不再生效,而是直接将布局的宽度或者高度设置为自适应即可实现相同的功能。

    4. 线性布局中的shrinkType属性用于控制所有子视图的压缩特性,如果子视图的尺寸设置shrink属性值则以子视图的设置优先,布局视图的shrinkType将不再起作用。

    5. 修改布局视图监听子布局视图frame和center变化的实现,由原来的KVO形式变化为直接调用。这样就可以减少布局计算的耗时处理。

    6. 重构了流式布局、相对布局,加快了布局计算时间,尤其是相对布局的重构。

    🛠 Fixed

    1. 修复在使用sizeclass时对位置对象进行克隆的一个BUG。这个BUG可能导致在不同sizeclass下位置设置被覆盖的问题。
    2. 修复相对布局下一组视图在高度或者宽度自适应下无法垂直居中或者水平居中的BUG#103
    3. 修复框架布局MyFrameLayout设置高度自适应时,当其中的子视图隐藏或者恢复隐藏时自适应高度无法更新的BUG#99
    4. 修复了流式布局在设置了子视图水平间距和垂直间距的情况下右对齐和底部对齐的BUG。

  • v1.9.0.beta

    November 19, 2019
  • v1.8.0 Changes

    June 27, 2019

    🛠 Fixed

    1. 重构线性布局,精简实现逻辑和代码。
    2. 针对各种布局下的子视图的尺寸约束能力做了扩展。原先版本中只有相对布局中的子视图可以设置尺寸依赖任意其他子视图,而其他布局中的子视图只有有限的约束依赖能力。新版本中这些约束依赖得到增强,几乎所有布局下的子视图都可以支持自身宽度等于自身高度,以及尺寸依赖其他子视图的情况。issue#94
    3. 修复当将布局视图作为UIScrollView下的容器视图同时UIScrollView支持放大缩小能力时,在屏幕旋转时可能会产生的BUG。issue#93
    4. 修复了布局视图的尺寸自适应能力和AutoLayout结合后,布局视图添加删除子视图后要手动代码进行布局视图尺寸自适应的刷新问题。issue#95
    5. 修复相对布局子视图隐藏时,其他依赖这个子视图的子视图的位置和尺寸不正确更新的问题。
    6. 修复UIImageView的宽度固定高度自适应的问题。
    7. 支持通过对isMyLayouting进行KVO监听来实现布局的通知处理机制,我们可以通过KVO布局视图的isMyLayouting属性来或者布局完成后子视图的frame以及布局视图的frame值了。
    8. 下列方法或属性名被列为过期,并推荐使用新的方法名和属性名:
    +[MyBaseLayout myUpArabicUI:(BOOL)isArabicUI inWindow:(UIWindow *)window]  ==>  +[MyBaseLayout updateRTL:(BOOL)isRTL inWindow:(UIWindow *)window]
    
    -[UIView myVisibility]  ==>  -[UIView visibility]
    
    -[UIView myAlignment] == > -[UIView alignment]
    
    
  • v1.7.0 Changes

    June 27, 2019

    ➕ Added

    ✅ 1. 添加了对MyLayout的尺寸自适应和AutoLayout结合的能力。AutoLayout能使用和UILabel一样的MyLayout布局视图中的高度和宽度自适应的设置。具体需求见issue#79。这个问题的解决得到简化处理。新版本的能力让UITableViewCell的高度自适应的能力得到简化。具体的代码演示见AllTest1ViewController,以及AllTest12ViewController中的详细介绍。

    1. 添加了对RTL设置的即时生效的能力,您可通过方法+[MyBaseLayout myUpArabicUI:(BOOL)isArabicUI inWindow:(UIWindow *)window 来设置,具体的功能实现要感谢LAnqxpp的贡献。 #### 🛠 Fixed
      1. 修复了在完成布局后再对子视图设置约束时子视图约束不起作用的BUG#90。当代码中不对布局视图中的子视图设置任何约束时就会出现这个问题,这个问题涉及到所有布局。
      2. 修复了相对布局可能会产生尺寸无限大的问题,尤其是当相对布局的高度为自适应,并且相对布局中同样存在着具有高度自适应的子布局视图的情况。
  • v1.6.1 Changes

    September 20, 2018

    🛠 Fixed

    1. 修复对所有iPhoneX系列的设备的布局视图在设置padding的值为safeAreaMargin时的BUG。
    2. 添加对Application Extension上使用布局库视图的支持。BUG#81
  • v1.6.0 Changes

    August 05, 2018

    ➕ Added

    ✅ 1. 添加布局属性layoutTransform,用来实现对布局内子视图的整体位置变换,可以通过这个属性来实现一般常见的平移,缩放,水平翻转,垂直翻转等功能。具体的DEMO在新增加的AllTest11ViewController中可以查看。 ✅ 2. 为流式布局MyFlowLayout支持子视图固定尺寸并且间距动态拉伸调整的能力,你可以通过设置流式布局的方法:setSubviewsSize:minSpace:maxSpace:来实现,这个方法原先只支持内容约束流式布局,现在新版本对数量约束流式布局也同样支持了。具体的DEMO在新增加的FLLTest8ViewController中可以查看。

    🛠 Fixed

    1. 修复了UILabel等控件的尺寸设置了wrapContentHeight或者wrapContentWidth为YES并且同时又设置了最大最小尺寸时,在相对布局内进行尺寸计算内可能会出现的问题。
    2. 修复了通过Carthage引入库时出现符合以及文件无法找到的问题。
  • v1.5.4

    May 26, 2018
  • v1.5.3 Changes

    May 11, 2018

    ➕ Added

    1.添加了流式布局MyFlowLayout对瀑布流的支持,主要是数量约束流式布局来实现,通过设置autoArrange为YES或者设置arrangedGravity属性为MyGravity_Horz_Between或者MyGravity_Vert_Between来实现两种不同策略的瀑布流模式,瀑布流模式其实就是一种紧凑的流式布局排列方式。具体的DEMO在新增加的FLLTest7ViewController中可以查看。

    🛠 Fixed

    1. 修复了流式布局MyFlowLayout中的arrangedGravity属性设置和子视图的myAlignment属性同时设置时有可能对齐方式不正确的问题,以及gravity属性设置后停靠有可能不正确的问题。 ✅ 2. 优化和修复了对UIScrollView+布局视图时,设置UIScrollView的高度或者宽度由布局视图的尺寸进行自适应的问题。新版本中UIScrollView的尺寸可以依赖于布局视图的尺寸,同时布局视图的最大最小尺寸可以设置为UIScrollView的尺寸。具体例子参考:FLLTest7ViewController
    2. 添加了对myTop,myBottom,myLeft,myRight,myLeading,myTrailing,mySize,myWidth,myHeight,myMargin, myHorzMargin, myVertMargin的读取使用的告警处理!一般情况下这些属性只能用于设置具体的数值,而不能用来获取某个尺寸,get方法也并不代表着视图的约束尺寸,这个点切记,切记。
    3. 添加了对布局视图的cacheEstimatedRect属性的使用限制说明,这个属性只能用于那些需要高度自适应的UITableViewCell的根布局视图中使用,其他地方如果使用则有可能会出现计算不正确的问题。
    4. 恢复了对XCODE8.0以前的编译器版本使用MyLayout的支持。