Autolayout和Frame
现在iOS页面布局用的最多的就是Frame和Autolayout,在Autolayout通过Masonry封装在实际使用中也十分方便。实际上,Autolayout的约束最后都是系统最终转化成frame来进行布局的,对与一个View来说,最终确定其中心点位置和View的宽高。当Autolayout和Frame设置上产生冲突的时候,则会以Autolayout的设置为准。这篇主要讨论布局中常用的几个方法和autolayout遇到动画的情形。
现在iOS页面布局用的最多的就是Frame和Autolayout,在Autolayout通过Masonry封装在实际使用中也十分方便。实际上,Autolayout的约束最后都是系统最终转化成frame来进行布局的,对与一个View来说,最终确定其中心点位置和View的宽高。当Autolayout和Frame设置上产生冲突的时候,则会以Autolayout的设置为准。这篇主要讨论布局中常用的几个方法和autolayout遇到动画的情形。
第一次遇到是在阅读AFNetworking中NSURLSession部分代码的时候:
1 | - (NSArray *)tasksForKeyPath:(NSString *)keyPath { |
KVC集合运算符允许以key path符号在一个集合中执行方法,以@开头表示一个特定的集合方法。键值编码会在必要的时候把基本数据类型进行装箱或者拆箱
它主要分为3类:1.简单集合操作符 2.对象操作符 3.数组和集合操作符
在CFRunloop中已经说明了一个线程及其runloop的对应关系,现在以iOS中NSThread的实际使用来说明runloop在线程中的意义。
通过header view和 foot view 添加对scrollview contentOffset属性 kvo 实现动态刷新。在runtime对scrollview添加header的时候,在view的willMoveToSuperView生命周期方法中进行注册。
1.scrollview往上滑动的时候,contentOffsize的y是正数。scrollview往下滑动的时候,contentOffsize的y是负数。
2.header和footer的位置和大小是在view的layoutSubviews生命周期方法里设置的。
3.通过设置header或者footer的状态的时候控制其行为
小技巧:
1.在子类中调用了父类的方法,如果要求子类在其实现中必须调用父类的方法,可以在方法声明的时候添加 NS_REQUIRES_SUPER 宏,编译器在编译过程可进行检查。