isa分为POINTER_ISA(指针类型)和NONPOINTER_ISA(非指针类型) POINTER_ISA指针类型只有一个内存地址 NONPOINTER_ISA除了有地...
isa分为POINTER_ISA(指针类型)和NONPOINTER_ISA(非指针类型) POINTER_ISA指针类型只有一个内存地址 NONPOINTER_ISA除了有地...
Swift与OC编译区别 swift与oc编译区别Swfit使用前端编译器swiftc,降级编译成IR,再通过后端编译器LLVM生成.o可执行文件。OC使用前端编译器Clan...
在之前OpenGL系列基础之上,我们又对iOS原生Metal做了一些探索,这里主要是记录一下学习的过程。 1.MTKView 在学习metal之前我们需要了解一下什么是MTK...
与用固定着色器绘制三角形[https://www.jianshu.com/p/4e05ed6d57b8]类似,这里重点讲下不同的地方。 1.加载图片 2.设置顶点数据 3.绘制结果
与前面OpenGL中讲到的三角形渲染[https://www.jianshu.com/p/d96a2312f765]类似,接下来我们将在iOS系统下探索如何渲染一个三角形。 ...
这里通过CTFrameGetLineOrigins计算出来的lineOrigin都是基于CoreText坐标系里的坐标
iOS中CoreText框架探究闲来无事想着自己搞个富文本的工具库,不至于每次遇见这些东西就用别人的第三方。自己研究研究也有助于自己对这方面的理解。通过查找了相关的调研发现CoreText是一个好的框架,我...
http://api.cocoachina.com/uploads//image/20191105/1572929233999622.png
这张图里清晰的描述了,为什么行高 = ascent + descent;还有为什么originY = lineOrigin.y - descent. 我的理解是按照CoreText坐标系,Y轴越往下越小,所以就是减去descent
iOS中CoreText框架探究闲来无事想着自己搞个富文本的工具库,不至于每次遇见这些东西就用别人的第三方。自己研究研究也有助于自己对这方面的理解。通过查找了相关的调研发现CoreText是一个好的框架,我...
http://api.cocoachina.com/uploads//image/20191105/1572929233999622.png
这张图里清晰的描述了,为什么行高 = ascent + descent;还有为什么originY = lineOrigin.y - descent. 我的理解是按照CoreText坐标系,Y轴越往下越小,所以就是减去descent
iOS中CoreText框架探究闲来无事想着自己搞个富文本的工具库,不至于每次遇见这些东西就用别人的第三方。自己研究研究也有助于自己对这方面的理解。通过查找了相关的调研发现CoreText是一个好的框架,我...
前面我们已经熟悉OpenGL中一些常有的名词[https://www.jianshu.com/p/22f3e9497dfe],现在开始用OpenGL来写一个简单的demo,即...
在学习OpenGL之前,需要先了解一下关于图形渲染方面的一些基础知识和概念。下面一些梳理仅供自己加深影响。 OpenGL是什么? OpenGL是一种图形渲染库,由显示设备厂商...
前言由于时间的问题,暂且只更新这么多了,后续还会持续更新本文《最快让你上手ReactiveCocoa之进阶篇》,目前只是简短的介绍了些RAC核心的一些方法,后续还需要加上MV...
我们通过例子可以很好的说明串行队列和并行队列的区别,以及同步函数与异步函数的使用。基于几道面试来逐个分析: 案例一 这里我们写一下思路:1.首先queue和dispatch_...
在平时开发过程中,几乎所有人都接触过泛型这个概念,苹果从IOS9以后引入了泛型这个概念,从系统库到我们自定义泛型中,或多或少都有一定的理解。所谓的泛型,即为了在使用某个对象时...
在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案例,在实际使用中感受它们的区别。还有一点需要说明的是,这篇文...
本文将从如下几个方面来介绍它: 什么是hitTest hitTest、响应者链和触摸事件的先后顺序是什么 hitTest实现思路以及模仿 hitTest使用场景 1.什么是h...
像NSArray,NSSet,NSDictionary是平时常用的数据类型,今天想说的是另外两个比较高阶的集合NSHashTable和NSMapTable。 NSHashTa...
其实 ${PODS_ROOT} 和 ${SRCROOT}/PODS 是同一个目录。在Build Settings 中的 User-Defined(在最下方) 中,有一个定义 ${PODS_ROOT} = ${SRCROOT}/Pods。应该是cocoapods版本不一致原因。
出现私有库文件报错,可以在Build Settings下Search Path添加${SRCROOT}/PODS试试。
pod install的深入理解CocoaPods是什么? CocoaPods是iOS平台当前最流行的包管理工具,可以将它理解为一个可以自动部署到项目的组件池,而对应的podfile文件就相当于请求组件的R...
总所周知,oc对象底层是由结构体实现的,所以通过分析结构体内存占用情况可以更好的理解oc对象的内存占用。 1.把OC对象编译成结构体 有如下代码: 我们可以通过clang命名...
前两天看到一个面试题突然挺感兴趣的,然后发现自己并不能立马分析出底层原理实现,这里抓紧看了一下runtime源码并按照自己的理解分析了一波,然后得出答案。 1.面试题 2.初...