前言: 按照时间顺序,事件的生命周期是这样的:事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找到...
iOS Objective -C alloc 调用流程 iOS Object-C init&new iOS OC 对象的内存对齐原则 iOS Objective-C isa ...
前言 第一:本文揭示了决定CALayer 大小和位置的其实是它的属性bounds和position;CALayer的frame属性,实际上是从bounds和position属...
图层树的类型 layer tree 分为 model layer tree(模型图层树) 、presentation layer tree(表示图层树) 、render la...
layoutSubviews在以下情况下会被调用: init初始化不会触发layoutSubviews但是是用initWithFrame 进行初始化时,当rect的值不为CG...
前言 Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这个新功能“Blocks”。从那开始,Block就出现在iOS...
1.UIView的setNeedsDisplay和setNeedsLayout方法首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方...
NSDictionary介绍 NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的, hash函数设计的好坏影响着数据的查找访问效率。...
iOS 底层原理 文章汇总[https://www.jianshu.com/p/412b20d9a0f6] 本文主要介绍block的类型、循环引用的解决方法以及block底层...
好奇触摸事件是如何从屏幕转移到APP内的?困惑于Cell怎么突然不能点击了?纠结于如何实现这个奇葩响应需求?亦或是已经被响应链、手势、target-action这一系列响应触...
博客链接深入理解GCD之dispatch_group 之前已经介绍了dispatch_semaphore的底层实现,dispatch_group的实现是基于前者的。在看源码之...
摘录: 「想名真难」、「猴子的毛」 简化核心函数dispatch_once_f: 1、dispatch_atomic_cmpxchg,它是一个宏定义,原型为__sync_bo...
GCD里的单例函数dispatch_once是我们经常会用到的,今天我们来稍做深入分析一下。GCD的源码都在libdispatch.dylib库里,这个库在libSystem...