iOS - 消息发送的完整流程 写在前面 在OC里面,调用对象的某个方法其实就是给这个对象发送一个消息,这个过程我们把它分为三大阶段,分别为:消息发送阶段、动态解析阶段、消息转发阶段,本文将细细剖析这三个阶段,但是在剖析这三大阶段之前我们需要先回顾一下Class的结构。 Class结构 苹果源码最新下载地址请点击:苹果源码 在objc-runtime-new.h中可以看到objc_class结构如下: struct objc_o 移动开发 2025年06月02日 54 点赞 0 评论 12467 浏览
View.post()不靠谱的地方你知道多少 首先我们来看一段代码: 启动了两个模拟器 API 22 和API 26分别是安卓7.0以下和安卓7.0以上 下面我们就从源码分析他们之间的差别以及为啥造成的现象不同 首先我们来分析安卓7.0以下的源码流程: 当attachInfo为空时走的是ViewRootImpl.getRunQueue().post(action);代码 当atta 移动开发 2025年05月11日 140 点赞 0 评论 12467 浏览
IOS之二进制重拍 原理 App包数据并不是在启动的时候一次全部加载到内存中的,而是类似于懒加载的方式,以每页16KB的数据进行分页加载。启动的时刻,也是缺页加载次数最多的时刻。因为启动用到的类和方法,并不是全部集中在某几页数据中,而是根据编译顺序,分散到不确定的分页数据中。我们做二进制重拍,也就是要让启动用到的函数,集中到最前边的几张表中,减少分页加载的次数,也就节约了启动时间。 那么为什么减少分页加载的次数,可以 移动开发 2025年04月27日 190 点赞 0 评论 12371 浏览
Touch:iOS判断当前点击的位置是否在某个视图上 iOS判断当前点击的位置是否在某个视图上 记录几种判断触摸点是否在某个view上面的方法 第一种方式:isDescendantOfView: 通过touch.view调用 isDescendantOfView:方法,返回 YES, 则触摸点在我们需要判断的视图上;反之则不在。 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEv 移动开发 2025年04月10日 75 点赞 0 评论 12330 浏览
iOS-button响应流程 Button响应首先从触摸屏幕开始 在这之前,需要了解坐标转换及原因 程序员的逻辑往往如图所示 image.png 也就是UI逻辑中,使用的坐标点往往是相对于父布局的,而布局会嵌套多层 屏幕上的触点,判断落点归属于哪个UI控件的话,就需要让所有UI控件的坐标点转换为相对于 window的 这样转换后的坐标就变为 image.png 直观是这样的逻辑,但真实的检测过程实际是 移动开发 2025年06月01日 44 点赞 0 评论 12288 浏览
设计模式之装饰器模式 也称装饰者模式、装饰器模式、Wrapper、Decorator。 装饰模式是一种结构型设计模式, 允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。 解决方案 当你需要更改一个对象的行为时, 第一个跳入脑海的想法就是扩展它所属的类。 但是, 你不能忽视继承可能引发的几个严重问题。 继承是静态的。 你无法在运行时更改已有对象的行为, 只能使用由不同子类创建的对象来替代当前的整个对 移动开发 2025年05月01日 200 点赞 0 评论 12287 浏览
Kotlin 监听键盘显示隐藏 最近碰上了需要监听键盘显示和隐藏,在Kotlin场景下封装了一个扩展方法,方便日后使用。 Android系统本身并没有提供有效的方法可以监听键盘的显示和隐藏,常用的监听方法莫过于屏幕的可见区域高度,当高度变化超过一定值,一般认为是超过200像素,就说明有键盘的显示和隐藏操作。 fun Activity.observeKeyboardChange(onChange: (isShowing: Bool 移动开发 2024年10月28日 168 点赞 0 评论 12283 浏览
解密网页奥秘!Mac Safari 启用“显示网页开发者功能”超详细教程(Option (⌥) + Command (⌘) + I) 解密网页奥秘!Mac Safari 启用“显示网页开发者功能”超详细教程想知道那些炫酷的网页效果是怎么实现的吗?想一探网站背后的代码世界吗?Safari 浏览器为你准备了一把“金钥匙”——“显示网页开发者功能”,让你轻松打开网页的“源代码”大门,探索网页设计的奥秘。这篇教程将用最清晰的步骤,教你如何在 Mac 上的 移动开发 2025年06月07日 193 点赞 0 评论 12257 浏览
iOS 高级面试题--答案 目录 iOS 基础题 1. 分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员? 2.讲一下atomic的实现机制;为什么不能保证绝对的线程安全(最好可以结合场景来说)? 3. 被weak修饰的对象在被释放的时候会发生什么?是如何实现的?知道sideTable么?里面的结构可以画出来么? 4. 关联对象有什么应用,系统如何管理关联对象?其被释放的时候需要手动将所 移动开发 2025年06月16日 101 点赞 0 评论 12253 浏览
Flutter PopupMenuButton 详解 1. 引言 在 Flutter 中,PopupMenuButton 是一个用于创建弹出菜单的组件,适用于提供上下文操作、设置选项等功能。用户点击按钮后,会弹出一个菜单列表,供用户选择。本文将介绍 PopupMenuButton 的基本用法、主要属性及自定义样式。2. PopupMenuButton 的基本用法 PopupM 移动开发 2025年04月15日 110 点赞 0 评论 12239 浏览