1.layoutSubviews方法 1.1 根据苹果官方帮助文档对layoutSubviews方法的解释: 此方法用来重新定义子元素的位置和大小.当子类重写此方法,用来实现UI元素的更精确布局.如果要让布局重新刷新,那么就调用setNeedsLayout,即setNeedsLayout方法会默认用layoutSubViews方法. 1.2 很多时候系统会自动调用layoutSubviews方法: 1.初始化不会触发layoutSubviews,但是如果设置了不为CGRectZero的frame…
Mac OS X 10.6及iOS4.0之后导入了可以使全体线程更高效运行,并且使并行处理应用更易开发的架构,GCD(Grand Central  Dispatch),同时引入的还有Run Loop,线程(包括Cocoa和POSIX)和Operation.GCD拥有非常轻量级的工作单元和并发方式,并且由系统决定其最佳调度方式.这个时候出现了一个问题,NSOperation如何处理呢? 其实我们在通过NSOperation和GCD进行开发过程中,会发现两者执行的方式有许多相似之处,NSOperat…
atomic :  变量默认是有该有属性的,这个属性是为了保证在多线程的情况下,编译器会自动生成一些互斥加锁的代码,避免该变量的读写不同步的问题. nonatomic  : 如果该对象无需考虑多线程的情况,这个属性会让编译器少生成一些互斥代码,可以提高效率. atomic 的意思是setter/getter 这个函数,是一个原语操作,如果有多个线程同时调用setter的话,不会出现某一个线程执行完setter全部语句之前,另一个线程开始执行setter情况,相当于函数头尾加了锁一样,可以保证数据…
OC里枚举的两种类型.NS_ENUM和NS_OPTIONS本质上是一样的都是枚举. typedef NS_ENUM(NSInteger, UIViewAnimationTransition) { UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAni…
参考链接:https://www.jianshu.com/p/c7647caa8bd1…
0.OC语法基础 CHOCBase Object C语法学习笔记(一) Object C语法学习笔记(二) 1.UI类 自定义控件程序运行流程 setNeedsLayOut和setNeedsDisplay区别 masonry使用技巧 布局约束SDAutoLayout 1.1 普通展示 UILabel UIView UI控件的位置 UICollectionViewController UIPageViewController UITextView UITableViewController UII…
ios开发 @property 和 Ivar 的区别 @property 属性其实是对成员变量的一种封装.我们先大概这样理解: @property = Ivar + setter + getter Ivar Ivar可以理解为类中的一个变量,主要作用是用来保存数据的. ========================================================== 我们不妨来看个例子,通过下边的例子能够很清楚的解释这两个东东: 我们新建一个Person类 @interface…
使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库,多个应用程序共享内存中得同一份库文件,节省资源 3使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的. 从1可以得出,将整个应用程序分模块,团队合作,进行分工,影响比较小. 等其他好处, 从2可以看出,其实动态库应该叫共享库,那么从这个意义上来说,苹果禁止iOS开…
iOS开发-Alpha,Hidden和Opaque区别   UIView控件都有Alpha,Hidden和Opaque这三个常见属性,UIView控件BackgroundColor是用RGBA表示的,故背景色也会有一个alpha(在Storyboard中调色板显示为opacity).这些属性使用时易混淆,尤其是Alpha和Opaque之间有的时候不是很好分别,稍微整理下: Alpha(不透明度) alpha是不透明度,属性为浮点类型的值,取值范围从0到1.0,表示从完全透明到完全不透明,其特性有…
copy,assign,strong,retain,weak,readonly,readwrite,nonatomic,atomic,unsafe_unretained的使用与区别 最近在学习iOS的过程个遇到了不少问题,知道概念也看过示例代码,但是就是写不出来或者不知道怎么去用. 一种遇到最多的时候就是在申明一个属性的时候,比如: @property (?, ?) ? *!: ......... ...... ... . 对,就是这里,每次碰到这里的时候,就不知道怎么下手了,虽然看起来很简单(…