同步操作将从 欧阳大哥/MyLinearLayout 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
为了防止命名冲突,以及命名的规范,1.1.1版本对一些方法进行了重命名,以及枚举值重新命名,请浏览最下面的如何解决命名冲突和报警的问题。
一套功能强大的iOS布局库,他不是在自动布局的基础上进行的封装,而是一套原生的基于对frame设置的封装,通过重载layoutSubview函数来实现子视图的布局,因此可以无限制的运行在任何版本的iOS系统中。其设计思想以及原理则参考了android的布局和iOS自动布局以及SizeClass的功能,而比android的布局库以及iOS的自动布局库功能更加强大,使用则方便简单,其分别提供了:线性布局MyLinearLayout、相对布局MyRelativeLayout、框架布局MyFrameLayout、表格布局MyTableLayout、流式布局MyFlowLayout五个布局类,以及针对苹果的各种屏幕尺寸的设备添加了对SizeClass的支持,以便同时适配各种屏幕设备。各种类应用的场景不大一样,具体的使用方法请看Demo中的演示代码以及到我的CSDN主页中了解:
http://blog.csdn.net/yangtiang/article/details/46483999 线性布局
http://blog.csdn.net/yangtiang/article/details/46795231 相对布局
http://blog.csdn.net/yangtiang/article/details/46492083 框架布局
http://blog.csdn.net/yangtiang/article/details/48011431 表格布局
http://blog.csdn.net/yangtiang/article/details/50652946 流式布局
线性布局分为垂直线性布局和水平线性布局,其中垂直线性布局中的子视图总是按照添加的顺序依次从上到下排列,而水平线性布局中的子视图则按照添加的顺序依次从左到右进行排列。这种布局中的子视图之间不需要设置任何依赖关系,因此是最简单也是最常见的一种布局方式。
相对布局就是实现了iOS的自动布局功能的一种布局方式,但是比自动布局功能更加强大,更加容易使用。相对布局中的子视图必须要设置视图与视图之间的依赖关系以及视图与布局视图的依赖关系,也就是需要设置视图自身上下左右的依赖关系以及高度和宽度的依赖关系。对于一些不规则的布局则最好使用相对布局。
框架布局,故名思议要求布局必须设定明确的高度和宽度值,而且里面的子视图只能布局在框架布局的上中下以及左中右的某个具体的位置上,框架布局支持子视图之间的重叠排列。因此框架布局一般是用来做根布局使用。
表格布局,是一种增强的线性布局,也分为垂直表格和水平表格,表格布局必须要先添加一行,然后再在当前行上进行单元格视图的添加,表格布局的风格类似于HTML页面的表格实现机制,表格布局用于那些有规律的子视图的排列,以及可以用于实现瀑布流的效果。
流式布局是一种子视图优先按特定方向排列布局,而当子视图填充尺寸或者数量满足一定条件后则后续的子视图会换行或者换列并回到起点重新进行排列布局。流式布局分为垂直内容填充约束流式布局、垂直数量约束流式布局、水平内容填充约束流式布局、水平数量约束流式布局四种布局。流式布局一般用于子视图有规律的排列。
为了有效的同时适配苹果的各种屏幕尺寸的设备,在1.1.2版本中新增加了对SizeClass的支持,通过SizeClass可以完成对某个视图在各种屏幕尺寸下的布局约束设置。
#import "MyLayout.h"
头文件放入到您的pch文件中,或者在需要使用界面布局的源代码位置。CocoaPods is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries like AFNetworking in your projects. See the "Getting Started" guide for more information. You can install it with the following command:
$ gem install cocoapods
To integrate MyLayout into your Xcode project using CocoaPods, specify it in your Podfile:
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '7.0'
pod 'MyLayout', '~> 1.1.2'
Then, run the following command:
$ pod install
#define MY_USEOLDMETHODDEF 1
和 #define MY_USEOLDMETHODNOWARNING 1
。 #define MY_USEOLDENUMDEF 1
和 #define MY_USEOLDENUMNOWARNING 1
来兼容老版本。因为历史的原因,原先的枚举类型的值都是大写,以及原来的一些UIView的一些扩展方法可能会和其他的库的扩展方法产生冲突。下面列出新老名称的映射表:
名称 | 老命名 | 新命名 |
---|---|---|
位置停靠枚举定义 | MarignGravity | MyMarginGravity |
位置停靠枚举值 | 大写格式 | 大小写格式 |
布局方向枚举定义 | LineViewOrientation | MyLayoutViewOrientation |
布局方向枚举值 | 大写格式 | 大小写格式 |
视图的xxMargin扩展方法 | xxMargin | myXXMargin |
视图的高宽扩展方法 | width,height | myWidth,myHeight |
视图的中心偏移 | centerXXOffset | myCenterXXOffset |
如果您在代码中还使用老的命名系统也会让您编译通过,但是会提示过期的警告,因此建议您将名称迁移到新的命名中来,对于类名以及枚举的迁移相对简单,只要利用工程中的查找替换功能就能完成。最麻烦的就是原先的leftMargin,rightMargin,topMargin,bottomMargin,centerXoffset,centerYOffset,centerOffset,width,height这9个属性方法的迁移会比较麻烦,您不能用全局查找替换的方法,最好是通过编译出现的错误进行一一替换,或者通过全局查找替换功能并使用Preview进行有选择的替换(这里深表对不起)。
如果您不想进行迁移,但是又不出现告警提示的话,则可以在pch文件中,工程的宏定义中,以及在MyLayoutDef.h的最开头这三种方法的任意一种方法中定义四个宏:
#define MY_USEOLDMETHODDEF 1
//表示继续使用那些老的方法,
#define MY_USEOLDMETHODNOWARNING 1
//表示使用老方法时不出现告警
#define MY_USEOLDENUMDEF 1
//表示继续使用老的枚举类型定义
#define MY_USEOLDENUMNOWARNING 1
//表示使用老的枚举类型时不出现警告
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。