随笔分类 - iOS
摘要:主要思路是: 1.使用UIBezierPath绘制一个六边形路径 2.创建一个CAShapeLayer图层,将这个六边形path设置到CAShapeLayer属性上。然后设置fillColor为透明,strokeColor为黑色,lineWidth为5.0 3.创建一个CAGradientLayer
阅读全文
摘要:UIWindow的作用 UIWindow是UIView的子类用于显示程序内容。每一个UIView想要将内容显示到屏幕上都需要依赖于一个UIWindow。 iOS应用程序要想正常运行至少要有一个UIWindow存在,通常这个UIWindow也就是应用程序的主窗口keyWindow。 APP中可以同时出
阅读全文
摘要:现在的业务型APP中,采用纯原生开发策略的已经很少了,大部分都使用的混合开发。如原生,H5,ReactNative,Flutter,Weex它们之间任意的组合就构成了混合开发。 其中原生+H5是出现最早的,老牌混合方案,即使过来多年,在现在的混合开发方案中H5也是使用率非常高的。在APP中嵌入Web
阅读全文
摘要:在平时的开发中,通常新手引导页或功能提示页会出现气泡弹窗来做提示。如果遇到了这类功能通常需要花费一定的精力来写这么一个工具的,这里写了一个气泡弹窗工具,希望能帮你提升一些开发效率。 使用方法 1.从gitHub上下载代码到本地,代码地址:https://github.com/zhfei/Bubble
阅读全文
摘要:坐标系转换 ios中的坐标系有三种 视图坐标系:原点(0,0)视图的左上角 窗口坐标系:原点(0,0)窗口的左上角 世界坐标系:原点(0,0)游戏中世界的原点 平时开发中经常会遇到转UIWindow坐标问题,如:已知一个UI控件的坐标,把它转换到UIWindow时,它对应的UIWindow坐标是什么
阅读全文
摘要:在平时开发中有时候需要收集网络不同阶段性能数据来分析网络情况,下面总结了2种收集方式。 1.通过NSURLSession提供的代理方法收集 2.通过NSURLProtocol做统一网络请求拦截收集 通过NSURLSession提供的代理方法收集 当NSURLSessionTask完成并返回响应时,N
阅读全文
摘要:GPUImage框架简介 GPUImage框架是一个基于OpenGL ES 2.0的iOS图像和视频处理框架。它充分利用GPU并行计算能力可以实时处理图像和视频,可以让开发者轻松地实现各种滤镜效果。 提供了GPUImageMovie、GPUImageCamera等实时视频输入处理类,方便开发者对实时
阅读全文
摘要:在APP启动后,RN框架开始启动。等RN框架启动后,就开始进行RN页面渲染了。 RN页面原生侧页面渲染的主要逻辑实现是在RCTUIManager和RCTShadowView完成的。 通过看UIMananger的源码可以看到,UIMananger导出给JS端的API接口在对UI的操作上,基本都会同时对
阅读全文
摘要:问题描述 在SDK初始化时,会在init方法中开启一个倒计时,在5s倒计时结束后使用子线程将本地保存的历史日志信息上传到后台。 因业务需要,在日志在发送上传前,需要对日志数据做编码和特殊字符替换,而日志文件里包含的日志数据量相比于一般方法中的局部变量要大很多,所以这样集中对日志文件数据的编码和替换就
阅读全文
摘要:APP启动广告功能实现要从2个方面思考 一是UI方案,怎样处理广告页与主页之间的切换方式。 二是广告页展示时机,是使用后台实时广告数据还是使用本地缓存广告数据。后台数据方式获取广告最新但是用户要等待后台返回数据后才能展示,增加用户等待时间。使用本地缓存启动速度快但数据更新不及时。 UI方案实现 双W
阅读全文
摘要:VC上屏幕旋转的方式有2种 1.因重力导致的屏幕旋转 条件:shouldAutorotate返回true,设备开启了屏幕旋转开关。 设备发生重力旋转。 2.单页面强制旋转 条件:无。 设置设备旋转方向。 NSNumber *orientationTarget = [NSNumber numberWi
阅读全文
摘要:present的使用方式 present只能是A present B , B present C , C present D这样的链式弹出。 不能A present B , A present C , A present D这样的叠加弹出,会报错。 dismiss的使用方法 dismiss是底部父V
阅读全文
摘要:在iOS开发中,经常会对UINavigationBar的样式进行全局样式。采用的设置方式有两种: 第一种,采用方式如下: [UINavigationBar appearance] 这种是对一类对象的默认全局外观样式设置,它对设置时机有要求。 通常需要在UIWindow的viewlayout之前。错过
阅读全文
摘要:*** 一级套路 *** 使用ARC管理内存- 防止内存泄露- 保证释放掉不再需要的内存,提高性能 在正确的地方使用 reuseIdentifier平时接触的需要考虑重用的视图有UICollectionView,UITableView。需要考虑它们内部的cell,header,footer。Coll
阅读全文
摘要:UIBezierPath是对Core Graphics框架的一种上层封装,目的是让绘图需求可以被更方便的使用。 那你有没有发现被UIBezierPath封装后与之前有什么改变? 答:有三个变化。 1.屏蔽繁杂重复的内容 2.功能阉割 3.坐标系顺时针方向反转 证明1:屏蔽繁杂重复的内容 相比Core
阅读全文
摘要:一,OC调用C语言方法 1.OC中的.m文件对C语言完全兼容,可以直接导入C头文件,进行使用 2.定义一个.c的C语言文件,在.m文件中导入,就可以使用。 二,OC调用C++语言方法 1.需要将.m文件后面再加一个m,改成.mm文件,.mm文件对C/C++完全兼容,导入C/C++头文件就可以使用 2
阅读全文
摘要:在iOS开发中,相关联的多个项目可能会放在同一个workspace下进行开发,那习惯了一个项目在一个工作空间下的同学该怎么快速开撸呢? 只需要三步而已! 第一步,先用Xcode在目标目录下创建一个workspace文件。见图说话。 第二步,用Xcode打开workspace文件,然后在该worksp
阅读全文
摘要:崩溃报告有两种:1.有报告内容:低内存报告2.无报告内容:崩溃报告 头部信息(Header)每份崩溃报告的开头都带有一个头部信息。 //报告的唯一标识,每个崩溃日志都有它独一无二的编号Incident Identifier: CDB1BD45-7742-4A51-A6DE-79DFD906CE68/
阅读全文
摘要:在开发中经常会碰到需要对按钮中的图片文字位置做调整的需求。第一种方式是通过设置按钮中图片文字的偏移量。通过方法setTitleEdgeInsets和setImageEdgeInsets实现 代码如下: 这种方式对普通的需求是可以满足的,但是操作起来麻烦,不是那么直观。对于像修改图片子控件的宽高这种高
阅读全文