Changelog History
Page 4
-
v1.2.5 Changes
⚡️ Updated
- 优化了
beginLayoutBlock
和endLayoutBlock
的调用时机,以及解决了可能这两个block块会出现循环引用的问题,同时优化了viewLayoutCompleteBlock
可能会出现循环引用的问题
🛠 Fixed
- 修复了布局视图隐藏属性hidden设置时可能会出现的布局的问题,尤其是当布局视图作为相对布局视图里面的子视图时。
- 优化了
-
v1.2.4 Changes
➕ Added
- 浮动布局MyFloatLayout增加了新属性
noBoundaryLimit
,用来实现那些只要单向浮动且没有边界限制的场景。(具体见FOLTest6ViewController应用)。 - 添加了2个DEMO,一个是RLTest4ViewController用来介绍布局在滚动条上滚动式停靠的实现。一个是FOLTest6ViewController用来介绍用浮动布局实现一些用户配置方面的DEMO。
⚡️ Updated
- 优化了布局方法
estimateLayoutRect
,优化了那些布局套布局的尺寸的评估的计算方法,加快了对动态高度评估计算的速度。
- 浮动布局MyFloatLayout增加了新属性
-
v1.2.3 Changes
➕ Added
添加了新的布局:路径布局MyPathLayout。通过路径布局您只需要提供一个生成路径曲线的方程、以及指定子视图在路径曲线之中的距离等信息就可以让子视图按照指定的路径曲线进行布局,因此路径布局可以实现一些非常酷炫的效果。(具体见PLTest1,2,3,4ViewController应用)
添加了子视图的新方法:
@property(nonatomic,copy) void (^viewLayoutCompleteBlock)(MyBaseLayout* layout, UIView *v);
这个方法是在每个子视图布局完成后会调用一次,然后自动销毁。您可以实现这个block来进行一些子视图布局完成后的设置,一般实现这个块用来完成一些特定的动画效果,以及取值操作。(具体见RLTest1ViewController,PLTest1ViewController应用)。添加了对布局视图里面的子视图通过transform进行坐标变换的支持功能,在您对子视图进行坐标变换操作时,您可以可以通过设置扩展属性来确定子视图的尺寸和位置。
⚡️ Updated
✅ 1. 完善了智能边界线的能力,如果您在布局视图中设置了subviewMargin属性的话,布局系统将会自动的将智能边界线一分为二。(具体见TLTest3ViewController见)
🔄 Changed
- 布局基类的属性:
被设置为过期,改为通过adjustScrollViewContentSize
adjustScrollViewContentSizeMode
属性来设置当布局视图加入到UIScrollView时调整其contentSize的方式。
🛠 Fixed
- 修正了一个线性布局中当布局视图的尺寸没有子视图尺寸大,而子视图又设置了
weight
属性时可能导致的计算不正确的问题。
-
v1.2.2 Changes
➕ Added
- 流式布局MyFlowLayout中的子视图添加了对
weight
属性的支持,流式布局中的weight
属性表示的是剩余空间的占比。通过weight
属性的使用,我们可以在很多用线性布局实现的布局,改用流式布局来完成,从而减少布局的嵌套。流式布局具有HTML中的Flex的特性。(具体见FLLTest4ViewController应用)。
✅ 2. 布局视图增加了子视图反序排列的功能属性:
@property(nonatomic, assign) BOOL reverseLayout;
这个属性可以按子视图添加的逆顺序进行界面布局。(具体见AllTest4ViewController应用).🛠 Fixed
- 修正了浮动布局MyFloatLayout中
weight
计算的问题,由原先的减间距再乘比例改为先乘比例再减间距
- 流式布局MyFlowLayout中的子视图添加了对
-
v1.2.1 Changes
➕ Added
- 垂直线性布局里面添加了A.heightDime.equalTo(A.widthDime)的支持。水平线性布局不支持。
🔄 Changed
- 优化了代码结构,增加了代码的可读性。
🛠 Fixed
- 修正了相对布局中子视图隐藏时,相关子视图重新排列布局可能导致不正确的问题。相对布局中子视图隐藏时其他视图重新排列布局的算法是:隐藏的子视图的尺寸设置为0,所以依赖隐藏的子视图的边距依赖无效,变为依赖隐藏子视图所依赖的边距。
-
v1.2.0 Changes
🛠 Fixed
- 修复了垂直线性布局中同时设置
myLeftMargin,myRightMargin
并且设置了gravity=MyMarginGravity_Horz_Center
时前者设置失效的问题。水平线性布局亦然。
- 修复了垂直线性布局中同时设置
-
v1.1.9 Changes
➕ Added
- 添加对DEMO的国际化的支持。
-
v1.1.8 Changes
➕ Added
- 增加了浮动布局MyFloatLayout设置浮动间距的方法
setSubviewFloatMargin
(具体见:FOLTest4ViewController)。
🛠 Fixed
✅ 1. 修复了表格布局MyTableLayout和智能边界线的结合的问题。(具体见TLTest3ViewController)
- 增加了浮动布局MyFloatLayout设置浮动间距的方法
-
v1.1.7 Changes
➕ Added
- 为表格布局添加行间距:
rowSpacing
和列间距:colSpacing
两个属性,用来设置表格的行和列之间的间距。 (具体见TLTest2ViewController) - 为布局添加方法:
layoutAnimationWithDuration
用来实现布局时的动画效果。(具体见:各个DEMO) - 新增加了扩展
flexedHeight
属性对于UIImageView的支持。当对一个UIImageView设置flexedHeight
为YES时则其在布局时会自动根据UIImageView设置的宽度等比例缩放其高度。这个特性在瀑布流实现中非常实用。(具体见TLTest2ViewController) - 为浮动布局MyFloatLayout提供
subviewMargin、subviewVertMargin、subviewHorzMargin
三个新属性,用来设置浮动布局中各视图的水平和垂直间距。 (具体见:FOLTest4ViewController,FOLTest5ViewController) - 为布局视图下的子视图的尺寸提供了设置最大尺寸以及最小尺寸的新功能,原先的MyLayoutDime中的
min,max
两个方法只能用来设置最小最大的常数值。MyLayoutDime新增加的方法lBound,uBound
则功能更加强大。除了可以设置常数限制尺寸外,还可以设置对象限制尺寸。(具体见:AllTest2ViewController,AllTest3ViewController) - 系统自动处理了大部分可能出现布局约束冲突的地方,减少了约束冲突出现的可能性。以及出现了约束冲突时告警以及crash的提示。
⚡️ Updated
✅ 1. 对线性布局中的浮动间距进行优化,支持宽度自动调整的能力.(具体见:AllTest3ViewController)
- 完善了将布局视图加入到非布局父视图时的位置和尺寸设置。您可以用myXXXMargin方法以及myHeight,myWidth方法设置其在非布局父视图上的位置和尺寸。
✅ 3. 修改表格布局的
addRow:colSize:以及insertRow:colSize:atIndex
的方法名,将原来的colWidth改为了colSize
。 (具体见:TLTest2ViewController) ✅ 4. 修改了表格布局的特殊尺寸的宏定义:MTLSIZE_XXXX (具体见:TLTest1ViewController,TLTest2ViewController) - 所有代码部分的注释重新编写,更加有利于大家的理解。
- 重新编写了大部分的DEMO例子。
🛠 Fixed
- 修复了浮动布局加入到UIScrollview中不能自动固定的问题。
- 修正了相对布局嵌套其他布局时,高度评估方法可能不正确的问题。
- 修正了线性布局在计算高度和宽度时的一个问题。
- 为表格布局添加行间距:
-
v1.1.6 Changes
- MyLayoutDime类的
equalTo
方法添加可以等于自身的功能。比如a.widthDime.equalTo(a.widthDime).add(10);
表示视图a的最终宽度等于其本身内容的宽度再加上10. 这种设置方法不会造成循环引用,主要用于那些需要在自身内容尺寸基础上再扩展尺寸的场景,(具体见: FLLTest2ViewController). - 流式布局MyFlowLayout中的内容填充布局为了解决每行内容的填充空隙问题,增加了拉伸间距,拉伸尺寸,以及自动排列三种功能。拉伸间距需要设置属性
gravity
的值为MyMarginGravity_Horz_Fill
或者MyMarginGravity_Vert_Fill
;拉伸尺寸需要设置属性averageArrange
的值为YES;自动排列则需要设置属性autoArrange
的值为YES。(具体见*FLLTest2ViewController)。 ✅ 3. 添加了新的视图扩展属性noLayout
。这个属性设置为YES时表示子视图会参与布局,但是并不会真实的调整其在布局视图中的位置和尺寸,而布局视图则会保留出这个子视图的布局位置和尺寸的空间。这个属性和useFrame
混合使用用来实现一些动画效果。(具体见FLLTest3ViewController) - 框架布局MyFrameLayout支持了
wrapContentHeight
和wrapContentWidth
设置为YES的功能。 ✅ 5. 布局视图添加新的属性highlightedOpacity
,用来指定当布局Touch事件的高亮不透明度值。(具体例子见:AllTest1ViewController) - 修正了MyTableLayout中的一个BUG。
- 将布局库中的所有注释部分重新进行了格式化和调整。
- 优化了布局中的一些性能问题。
- 去掉了对过期代码的兼容性。
- MyLayoutDime类的