之前在做公司的项目开发中,有一个模块具有比较多的视频编辑功能,大致画了下面一张图: 如上图,在编辑页面支持剪辑,效果,滤镜功能,每个功能又有若干个子功能。按照常规的做法的话,...
![240](https://upload.jianshu.io/users/upload_avatars/1255311/1fe1286c-2f4a-43e3-94be-5552da2ee211.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
之前在做公司的项目开发中,有一个模块具有比较多的视频编辑功能,大致画了下面一张图: 如上图,在编辑页面支持剪辑,效果,滤镜功能,每个功能又有若干个子功能。按照常规的做法的话,...
block的本质 block在开发中的使用频率非常高. block本质上是一个OC对象,它内部也有isa指针,这个对象封装了函数调用地址以及函数调用环境(函数参数、返回值、捕...
图片的存储方式 图片和其他所有资源一样,在内存中本质上都是0和1的二进制数据,用户无法接触到这些二进制数据,他们看到的都是经过某种二进制编码之后的图片。这种将图片以某种规则进...
在开发中,经常会碰到这样的情况:1.同一个页面上,有好几个网络请求,需要等到所有的网络请求都调用结束再进行下一步操作。2.同一个页面上,有好几个网络请求,但第二个接口依赖于第...
响应式编程 响应式编程是一种面向数据流和变化传播的编程范式。简单来说,就是变化的结果可以自动的通过数据流传播。以a = b这个表达式为例,表示的意思是将b的值赋值给a,如果再...
在ios开发中,Masonry是最常用的第三方开发布局框架。Masonry是基于自动布局技术实现的,所以说Masonry是NSLayoutConstrait的简易封装版本,底...
数据模型解析工具源码分析 Mantle Mantle 是由 Github 开发的一款模型框架,是一个用于简化应用程序中model层的第三方库。通常我们的应该中都会定义大量的m...
一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程能随时处理事件但并不退出,通常的代码逻辑是这样的: 这种模型通常被称作 Event...
前言 KTVHTTPCache是唱吧开源的一套音视频缓存框架。因目前所做的项目有视频播放的需求,因此在某个版本的迭代中,接入了KTVHTTPCache,体验不错。对于视频播放...
安装包瘦身 在上一篇启动优化中,有分析过项目中所有的代码、资源都在XX.app包里面,将来Xcode会将这个XX.app包压缩成一个ipa文件,然后上传到AppStore提供...
APP的启动可以分为2种: 冷启动(Cold Launch):从零开始启动APP。 热启动(Warm Launch):APP已经在内存中,在后台存活着,再次点击图标启动APP...
一.CPU与GPU 在屏幕成像的过程中,CPU和GPU起着至关重要的作用 CPU(Central Processing Unit,中央处理器)对象的创建和销毁、对象属性的调整...
更新xcode11后,新建工程设置rootViewController会报错 这是因为Xcode自动新增了一个SceneDelegate文件。iOS13之前,Appdeleg...
最近项目中有接入apple内购相关的功能,在此记录下一些经验总结 key_1 iTunes Connect后台,创建商品项时,会设置商品的产品ID,建议产品ID能够见名知其义...
学习到了
Android消息处理机制上次文章谈到ThreadLocal的原理。今天接着谈谈Android的消息处理机制。主要使用了四个类,Looper,Message,MessageQueue,Handler。...
上次文章谈到ThreadLocal的原理。今天接着谈谈Android的消息处理机制。主要使用了四个类,Looper,Message,MessageQueue,Handler。...
学习了
convertRect函数toView:目标视图 rect:需要换算的frame 调用者:rect的super视图 调用者:目标视图 rect:需要换算的frame fromView:rect的sup...