学习笔记:iOS布局库——MyLayout库(序)
<h3>写在前面的话:</h3>
<h4>MyLayout作者信息</h4>
欧阳大哥是一个快乐的码农,坚持原创,以造轮子为乐,感谢他为我们提供了功能如此强大的布局库
<h4>他的联系方式:</h4>
Email: obq0387_cn@sina.com
QQ: 156355113
QQ群: 178573773
<h4>MyLayoutGitHub地址,OC及Swift版本</h4>
Github: https://github.com/youngsoft/MyLinearLayout forObjective-C
Github: https://github.com/youngsoft/TangramKit forSwift
<h4>欧阳大哥主页</h4>
HomePage: http://www.jianshu.com/users/3c9287519f58
HomePage: http://blog.csdn.net/yangtiang
<h3>为什么要使用MyLayout库:</h3>
众所周知,对于iOS开发者来说,随着手机屏幕的尺寸在增多,不可避免的也需要考虑适配的问题了,iPhone公司也在考虑这样的问题,并给我们提供解决的方案:
- IOS6以前我们可以通过autoresizingMask和frame进行组合来解决视图伸缩、旋转的适配,但是这个方案不彻底还是需要编写很多的代码来完成;
- 在IOS6以后推出了AutoLayout的解决方案,这个方案的实现和可操作性太过于复杂和繁琐不仅编写的代码特别多,就是在XIB上进行布局约束也很麻烦和难以管理。于是乎有大牛就对AutoLayout进行了改造和精简推出了一些简化自动布局的框架比如:Masonry库,CocoaUI库,可以简化视图布局的处理。但使用起来还是有一些麻烦,这些库都是对IOS的AutoLayout进行封装而已。因此本身如果对自动布局不很了解的话很容易绕到复杂的约束冲突中去;
- IOS8后因为有了4.7寸,5.5寸的屏幕后推出了sizeClass来进行布局.
那么有了这些后为什么我们还是不能满足??还要提出MyLayout解决方案?是因为:
- 我们的应用还要支持到6.0以下。
- 我是一个老程序员不想学习新的布局语言。
- AutoLayout,size Class语法过于晦涩而且不好控制,我的frame甚至无法使用了,我的动画特效也不好处理了。
- MyLinearLayout的方法和使用逻辑简单,易用而且功能强大。
- 支持国产原创的库发展。
<h3>安卓和iOS适配技术的对比:</h3>
<h4>安卓的适配技术</h4>
对于视图的布局来说,我们基本上不需要设置视图摆放的具体位置,因此一般也不需要设置视图的绝对位置值和绝对大小值,通过wrap_content,match_parent来指定视图本身的相对高度和宽度,同时通过LinearLayout, RelativeLayout,FrameLayout等布局来决定里面子视图的排列和摆放的位置,通过weight,padding,margin,gravity等属性来设置视图尺寸比例和排列对齐以及间距方面的东西
<h4>iOS的适配技术</h4>
对于IOS来说我们以前编码时对于视图的布局总是通过setFrame来实现,用这种方法进行编程的最大的问题是我们必须在代码中写死很多位置的常量,而且还要自己进行计算高度和宽度以及边距等等,一般屏幕尺寸不同还需要对不同的尺寸进行处理,同样对于AutoLayout来说我们需要在代码里面编写大量的约束,造成的结果就是代码复杂和难以理解,对于维护来说更加是个灾难,而对于布局的微调更加是一个灾难。
<h3>MyLayout的几种布局方式之学习笔记:</h3>
线性布局MyLinearLayout学习笔记
相对布局MyRelativeLayout学习笔记
框架布局MyFrameLayout学习笔记
表格布局MyTableLayout学习笔记
流式布局MyFlowLayout学习笔记
浮动布局MyFloatLayout学习笔记
路径布局MyPathLayout学习笔记
MySizeClass学习笔记
注:点击链接,因为相关的布局方式没有学习透彻,准备完成一篇增加一篇(自己的学习笔记),暂且先用欧阳大哥在CSDN和简书中的说明
<h3>能实现什么样的效果,不同效果对应不同的demo:</h3>
这里准备针对不同的布局方式做不同的demo,并添加不同的gitHub地址;而后再做各种布局方式的汇总demo,实现复杂的布局线性布局
MyLinearLayout学习demo、
相对布局MyRelativeLayout学习demo、
框架布局MyFrameLayout学习demo、
表格布局MyTableLayout学习demo、
流式布局MyFlowLayout学习demo、
浮动布局MyFloatLayout学习demo、
路径布局MyPathLayout学习demo、
MySizeClass学习demo
各种布局方式汇总demo,实现复杂布局
以上就是MyLayout学习笔记的序言,如有任何疑问欢迎加Q:714700382,或者欧阳大哥的QQ群:178573773(推荐),我们共同讨论,共同进步