MyLinearLayout

MyLayout is a powerful iOS UI framework implemented by Objective-C. It integrates the functions with Android Layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,PathLayout,GridLayout,LayoutSizeClass to build your App 自动布局 UIView UITableView UICollectionView RTL

MIT License

Stars
4.4K
Committers
13

Bot releases are hidden (Show)

MyLinearLayout - MyLayout1.3.4_Release

Published by youngsoft over 7 years ago

See the CHANGELOG.md file.

MyLinearLayout - MyLayout1.3.3_Release

Published by youngsoft over 7 years ago

See the CHANGELOG.md file.

MyLinearLayout - MyLayout1.3.2_Release

Published by youngsoft over 7 years ago

See the CHANGELOG.md file.

MyLinearLayout - MyLayout1.3.1_Release

Published by youngsoft almost 8 years ago

See the CHANGELOG.md file.

MyLinearLayout - MyLayout1.3.0_Release

Published by youngsoft almost 8 years ago

See the CHANGELOG.md file.

MyLinearLayout - MyLayout1.2.9_Release

Published by youngsoft almost 8 years ago

See the CHANGELOG.md file.

MyLinearLayout - MyLayout1.2.8_Release

Published by youngsoft almost 8 years ago

See the CHANGELOG.md file.

MyLinearLayout - MyLayout1.2.7_Release

Published by youngsoft almost 8 years ago

  1. 为线性布局MyLinearLayout新增加了属性shrinkType。这个属性可以用来控制当子视图中有比重尺寸或者相对间距,而又有固定尺寸比布局视图的尺寸还大时,如果缩小这些固定尺寸视图的尺寸值的方法。(具体例子见AllTest7ViewController)
  2. 为布局视图添加了rotationToDeviceOrientationBlock属性。这个block给予用户在布局视图第一次完成或者有屏幕旋转时进行界面布局处理的机会。我们可以通过这个block块来处理设备屏幕旋转而需要改动布局的场景。这个block块不像beginLayoutBlock以及endLayoutBlock那样只调用一次,而是第一次布局完成以及每次屏幕旋转并布局完成后都会调用,因此要注意循环引用的问题。(具体见例子见:LLTest6ViewController)
  3. 线性布局MyLinearLayout中去掉了当子视图中有设置比重,或者子视图中设置相对间距时而又设置了布局视图的wrapContentWidth或者wrapContentHeight属性时,wrapContentWidth或者wrapContentHeight设置失效的限制。具体例子请看(AllTest7ViewController)
  4. 线性布局MyLinearLayout中的水平线性布局中修复了一个当子视图中有比重尺寸或者相对间距,而又有固定尺寸比布局视图的尺寸还大时,缩小那些具有固定尺寸的子视图的宽度的一个BUG。见(AllTest3ViewController)中的左右文字拉升的情况。
  5. 添加了MyLayoutDime中的uBound和lBound方法中最大最小值设置时可以等于自己的情况,这样目的是为了保证视图本身的尺寸不被压缩。具体见(AllTest7ViewController)
  6. 添加了在调试时使用po 视图对象.absPos.sizeClass 或者expr -o -- 视图.absPos.sizeClass 方法时可以输出布局设置的各种布局属性值。
  7. 添加了将布局视图作为非布局视图的子视图的四周边距值可以是相对边距的支持,也就是当布局视图作为非布局视图的子视图时设置的topPos,rightPos,topPos,bottomPos的值是大于0且小于1时表明的是相对边距。
  8. 修复了视图尺寸MyLayoutDime的uBound,lBound方法的最大最小尺寸设置为父布局视图时,而布局视图又有padding时,没有减去padding值的BUG。
  9. 添加了AllTest7ViewController这个新的DEMO,用来解决一些实践中各种屏幕尺寸下布局的完美处理方案。
MyLinearLayout - MyLayout1.2.4_Release

Published by youngsoft about 8 years ago

1.浮动布局MyFloatLayout增加了新属性noBoundaryLimit,用来实现那些只要单向浮动且没有边界限制的场景。具体例子见FOLTest6ViewController。
2.优化了布局方法estimateLayoutRect,优化了那些布局套布局的尺寸的评估的计算方法,加快了对动态高度评估计算的速度。
3.添加了2个DEMO,一个是RLTest4ViewController用来介绍布局在滚动条上滚动式停靠的实现。一个是FOLTest6ViewController用来介绍用浮动布局实现一些用户配置方面的DEMO。

MyLinearLayout - MyLayout1.2.3_Release

Published by youngsoft about 8 years ago

1.添加了新的布局:路径布局MyPathLayout。通过路径布局您只需要提供一个生成路径曲线的方程、以及指定子视图在路径曲线之中的距离等信息就可以让子视图按照指定的路径曲线进行布局,因此路径布局可以实现一些非常酷炫的效果。具体例子见:PLTest1,2,3,4ViewController
2.添加了子视图的新方法:@property(nonatomic,copy) void (^viewLayoutCompleteBlock)(MyBaseLayout* layout, UIView *v); 这个方法是在每个子视图布局完成后会调用一次,然后自动销毁。您可以实现这个block来进行一些子视图布局完成后的设置,一般实现这个块用来完成一些特定的动画效果,以及取值操作。具体例子见RLTest1ViewController,PLTest1ViewController
3.添加了对布局视图里面的子视图通过transform进行坐标变换的支持功能,在您对子视图进行坐标变换操作时,您可以可以通过设置扩展属性来确定子视图的尺寸和位置。具体能力见PLTest系列DEMO。
4.完善了智能边界线的能力,如果您在布局视图中设置了subviewMargin属性的话,布局系统将会自动的将智能边界线一分为2.具体例子见TLTest3ViewController
5.布局基类的属性:adjustScrollViewContentSize被设置为过期,改为通过adjustScrollViewContentSizeMode属性来设置当布局视图加入到UIScrollView时调整其contentSize的方式。
6.修正了一个线性布局中当布局视图的尺寸没有子视图尺寸大,而子视图又设置了weight属性时可能导致的计算不正确的问题。

MyLinearLayout - MyLayout1.2.2_Release

Published by youngsoft over 8 years ago

新版本发布:
1.流式布局MyFlowLayout中的子视图添加了对weight属性的支持,流式布局中的weight属性表示的是剩余空间的占比。通过weight属性的使用,我们可以在很多用线性布局实现的布局,改用流式布局来完成,从而减少布局的嵌套。流式布局具有HTML中的Flex的特性。具体例子见FLLTest4ViewController
2.布局视图增加了子视图反序排列的功能属性:@property(nonatomic, assign) BOOL reverseLayout; 这个属性可以按子视图添加的逆顺序进行界面布局。具体例子见:AllTest4ViewController
3.修正了浮动布局MyFloatLayout中weight计算的问题,由原先的减间距再乘比例改为先乘比例再减间距

MyLinearLayout - MyLayout1.2.1_Release

Published by youngsoft over 8 years ago

新版本发布

MyLinearLayout - MyLayout1.2.0_Release

Published by youngsoft over 8 years ago

新版本发布

MyLinearLayout - MyLayout1.1.9_Release

Published by youngsoft over 8 years ago

Add internationalization support

MyLinearLayout - MyLayout1.1.8_Release

Published by youngsoft over 8 years ago

1.优化了表格布局MyTableLayout和智能边界线的结合的问题。(具体见:TLTest3ViewController)

  1. 增加了浮动布局MyFloatLayout设置浮动间距的方法setSubviewFloatMargin (具体见:FOLTest4ViewController)
MyLinearLayout - MyLayout1.1.7_Release

Published by youngsoft over 8 years ago

New:

1.修改表格布局的addRow:colSize:以及insertRow:colSize:atIndex的方法名,将原来的colWidth改为了colSize。 (具体见:TLTest2ViewController)
2.修改了表格布局的特殊尺寸的宏定义:MTLSIZE_XXXX (具体见:TLTest1ViewController,TLTest2ViewController)
3.为表格布局添加行间距:rowSpacing和列间距:colSpacing两个属性,用来设置表格的行和列之间的间距。 (具体见:TLTest2ViewController)
4.为布局添加方法:layoutAnimationWithDuration用来实现布局时的动画效果。 (具体见:各个DEMO)
5.扩展flexedHeight属性对于UIImageView的支持。当对一个UIImageView设置flexedHeight为YES时则其在布局时会自动根据UIImageView设置的宽度等比例缩放其高度。这个特性在瀑布流实现中非常实用。 (具体见:TLTest2ViewController)
6.为浮动布局MyFloat提供subviewMargin、subviewVertMargin、subviewHorzMargin三个新属性,用来设置浮动布局中各视图的水平和垂直间距。 (具体见:FOLTest4ViewController,FOLTest5ViewController)
7.为布局视图下的子视图的尺寸提供了设置最大尺寸以及最小尺寸的新功能,原先的MyLayoutDime中的min,max两个方法只能用来设置最小最大的常数值。MyLayoutDime新增加的方法lBound,uBound则功能更加强大。除了可以设置常数限制尺寸外,还可以设置对象限制尺寸。(具体见:AllTest2ViewController,AllTest3ViewController)
8.对线性布局中的浮动间距进行优化,支持宽度自动调整的能力.(具体见:AllTest3ViewController)
9.完善了将布局视图加入到非布局父视图时的位置和尺寸设置。您可以用myXXXMargin方法以及myHeight,myWidth方法设置其在非布局父视图上的位置和尺寸。
10.系统自动处理了大部分可能出现布局约束冲突的地方,减少了约束冲突出现的可能性。以及出现了约束冲突时告警以及crash的提示。
11.所有代码部分的注释重新编写,更加有利于大家的理解。
12.重新编写了大部分的DEMO例子。

Bug:
1.修复了浮动布局加入到UIScrollview中不能自动固定的问题。
2.修正了相对布局嵌套其他布局时,高度评估方法可能不正确的问题。
3.修正了线性布局在计算高度和宽度时的一个问题。

MyLinearLayout - MyLayout1.1.6_Release

Published by youngsoft over 8 years ago

1.MyLayoutDime类的equalTo方法添加可以等于自身的功能。比如a.widthDime.equalTo(a.widthDime).add(10); 表示视图a的最终宽度等于其本身内容的宽度再加上10. 这种设置方法不会造成循环引用,主要用于那些需要在自身内容尺寸基础上再扩展尺寸的场景,具体例子见: FLLTest2ViewController。
2.流式布局MyFlowLayout中的内容填充布局为了解决每行内容的填充空隙问题,增加了拉伸间距,拉伸尺寸,以及自动排列三种功能。拉伸间距需要设置属性gravity的值为MyMarginGravity_Horz_Fill或者MyMarginGravity_Vert_Fill;拉伸尺寸需要设置属性averageArrange的值为YES;自动排列则需要设置属性autoArrange的值为YES。具体例子见FLLTest2ViewController。
3.添加了新的视图扩展属性noLayout。这个属性设置为YES时表示子视图会参与布局,但是并不会真实的调整其在布局视图中的位置和尺寸,而布局视图则会保留出这个子视图的布局位置和尺寸的空间。这个属性和useFrame混合使用用来实现一些动画效果。具体例子见:FLLTest3ViewController。
4.框架布局MyFrameLayout支持了wrapContentHeight和wrapContentWidth设置为YES的功能。
5.布局视图添加新的属性highlightedOpacity,用来指定当布局Touch事件的高亮不透明度值。具体例子见:AllTest1ViewController。
6.修正了MyTableLayout中的一个BUG。
7.将布局库中的所有注释部分重新进行了格式化和调整。
8.优化了布局中的一些性能问题。
9.去掉了对过期代码的兼容性。

MyLinearLayout - MyLayout1.1.5_Release

Published by youngsoft over 8 years ago

添加新的浮动布局MyFloatLayout,添加智能边界线,修复BUG,提升性能。

MyLinearLayout - MyLayout1.1.4_Release

Published by youngsoft over 8 years ago

修复BUG,添加尺寸缩放计算工具类。

MyLinearLayout - MyLayout1.1.3_Release

Published by youngsoft over 8 years ago