xiaopingpp

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

如何用OC如何写一个单例

top | 发表于 2022-01-07 更新于 2022-02-21 分类于 iOS
本文字数: 4.8k 阅读时长 ≈ 4 分钟

前言

  最近看了一些copyWithZone:这个方法相关的一些东西.没想到从这里可以延伸出来很多内容,包括深拷贝,浅拷贝,copy,mutableCopy,NSCopying协议,NSMutableCoping协议,单例等等东西.他们之间要么相互关联,要么环环相扣.也许拿出其中一点来可以说的比较清晰,但是全部合在一起又很乱了.因此写一篇文章来梳理一下这些知识脉络.

阅读全文 »

Swift基础语法

top | 发表于 2021-12-06 更新于 2021-12-29 分类于 Swift
本文字数: 11k 阅读时长 ≈ 10 分钟

前言

  最近开始看下《Swift4从零到精通iOS开发》,学习下Swift的语法.也相当于做一个简单的读书笔记.

  虽然在毕业前也做过一丢丢的Swift语法学习,但是那个时候还没有接触到任何的iOS开发,当时学起来也是晦涩难懂,所以之前的学习就当作空白归零,现在重新开始新的Swift语法学习.

阅读全文 »

iOS页面转场动画

top | 发表于 2021-11-29 更新于 2021-11-30 分类于 iOS
本文字数: 8.3k 阅读时长 ≈ 8 分钟

前言

  之前一直对容器转场这一块很模糊,因为这里面涉及到好几个协议的实现,而且名字比较长.读来总是不想仔细去看协议的名称.对于视图切换经常都是使用iOS系统内部自带的present-dismiss动画,或者导航栏的push和pop动画.虽然这部分在我们公司目前的app内也是用的比较多的,但是我感觉在注重用户体验后,这部分也是会进一步优化的.正好前段时间看到了一些关于场景切换的博客,就正好学习一下,并且写一个小demo记录下.方便后面前来查找.

阅读全文 »

项目完成后的tips总结

top | 发表于 2021-11-19 更新于 2021-11-30 分类于 iOS
本文字数: 4.5k 阅读时长 ≈ 4 分钟

前言

  最近刚刚完成了一个比较大的项目,整体客户端工期是14人天,我投入了10人天,因为服务端已经提前配合安卓上线了,所以整个项目中就是iOS端和测试端的人力投入,这整个项目包括从启动开始到最后渲染包含的东西不少.加之最近也看了好些iOS开发相关的书,我试着把自己学到的一些东西结合实际投入进去.可以感觉到和去年,不,应该是和半年前写代码有一些不同的感触.当然也不是说觉得自己很能写了,而是觉得自己面对一个问题时的思路比以往多了一些.主要表现在当觉得某一个方式实现功能不太方便时,我会尝试其他一些方式.习惯在实现一个复杂功能的时候先列出流程点.工程启动较慢,我就使用自己本地的小demo对一些不是完全把握的点先进行测试.遇到app表现和预期不一致时,不在直接打断点寻找问题,而是先思考一下可能的点,在追代码,然后断点.但是还是有很多需要加强的地方,架构设计这一块还是很模糊,很想把数据和视图隔离开来,总是差点意思.这个还是需要继续加强的. 更明显的点是因为前期把功能点分的比较细致,到后面相互模块间交互时,写起代码来就感觉比以往轻松了,很容易实现模块的相互交互.

阅读全文 »

iOS事件机制

top | 发表于 2021-10-25 更新于 2022-02-10 分类于 iOS
本文字数: 6k 阅读时长 ≈ 5 分钟

前言

  按照时间顺序,事件的生命周期包括事件的产生和传递(事件从父控件传递到子控件并找到合适的view)和事件的处理(对于事件的响应).其中的重点是:

  • 1、触摸事件由触屏生成后如何传递到当前应用.
  • 2、应用接收触摸事件后如何寻找最佳响应者.
  • 3、响应事件如何沿着响应链流动.
  • 4、响应链(UIResponder),手势识别器(UIGesture),UIControl之间的关系.

  当用户触碰了屏幕后,整个事件的传递和响应的流程基本如下:
1、点击到屏幕上的某一点被封装成为触摸事件添加到UIApplication对象的事件队列中.这个队列按照fifo的顺序执行其中的触摸事件.事件出队列时,UIApplication开始寻找一个最佳响应者,过程称为这个过程称为hit-testing.
2、当找到一个最佳响应者后,接下来是事件的传递和响应.事件除了被最佳响应者消耗,还能被手势识别器或者targte-action模式捕捉或者消耗.
3、触摸事件要么会被某个响应对象捕获后释放,要么没有找到能够响应的对象,最终被释放.

阅读全文 »

动态item实现的动态化

top | 发表于 2021-10-24 分类于 动态化
本文字数: 2.2k 阅读时长 ≈ 2 分钟

前言

  和匹配侧的各位同学一起维护动态item已经有一段时间了,一开始接触感觉这个东西很高深莫测,随着接触时间的增加,相关业务开发的处理,算是对动态item整个渲染过程有一些理解.在这里写一篇日志记录一下.
  动态item以更加快速的构建用户ui视图,可以降低app发版诉求甚至在一些场景下可以免于app发版.
  其中快速构建视图是通过动态item提前将描述ui视图结构通过描述性语言事先存放,在渲染阶段通过读取描述性的json文件,使用事先规定好的规则将视图渲染上屏.
  让app免于发版是通过将描述文件放置到服务端,通过app冷启动接口下发,这样可以做到增量更新,一些新的需求发布之后,只需修改描述文件中的某一项,不需要改动到native代码,即可完成视图的渲染,降低了发版次数.

阅读全文 »

iOS多线程

top | 发表于 2021-10-08 更新于 2021-12-21 分类于 iOS
本文字数: 9.5k 阅读时长 ≈ 9 分钟

前言

   本文参考自《iOS开发项目化经典教程》第一章,主要讲述iOS实现多线程的四种方式,线程间的安全和通信,GCD的基本操作。NSOperation的基本操作。

   多线程概念:由于一个线程同一时间内只能处理一个任务,因此一个线程内的任务需要按顺序执行。因此在遇到网络请求,下载等耗时操作时,需要等待此类操作结束才能进行接下来的操作,这段时间内用户不能进行任何操作,app也不会响应用户的操作。这是一种很糟糕的用户体验。因此在开发过程中,通常把比较耗时的操作放到一个线程中,把和用户交互放到主线程中。保证能够及时响应用户的操作行为。

阅读全文 »

iOS动画基础

top | 发表于 2021-09-12 更新于 2022-01-07 分类于 iOS
本文字数: 19k 阅读时长 ≈ 17 分钟

前言

  这边博客主要是总结一下最近看到iOS动画开发的一些基础知识。主要包含如下一些知识点。主要参考自《iOS开发实战:从入门到上架APPsotre》

1
2
3
4
5
6
7
8
9
10
11
12
1、使用UIImageView播放图片组动画
2、使用block回调创建UIView层过渡动画
3、使用block回调创建UIView层转场动画
4、使用commit方式创建UIView层过渡动画
5、使用commit方式创建UIView层转场动画
6、CAlayer层在UI开发中的应用
7、各种CALayer子类的用法
8、coreAnimation核心动画框架的用法
9、视图的transform变换
10、粒子效果动画
11、iOS中播放GIF动态图的方法
12、Flappy Bird动画小游戏
阅读全文 »

iOSruntime之method_exchange

top | 发表于 2021-09-05 更新于 2021-11-19 分类于 iOS
本文字数: 1.7k 阅读时长 ≈ 2 分钟

前言

  最近看到工程中对于容器中的生命周期方法hook比较多,有些甚至发生了重复hook的操作。后来组内大佬一同分析之后,无论这个方法背hook了多少次,
  所有被hook的方法都是会一直被执行下去的,我之前听的大概差不多懂了,但是今天还是写个小demo见证下效果。

阅读全文 »

SD_webImage调用链路探索

top | 发表于 2021-09-05 分类于 iOS
本文字数: 7.3k 阅读时长 ≈ 7 分钟

前言

  关于sd_webImage是这样介绍的。Asynchronous image downloader with cache support with an UIImageView category. (一个异步下载且支持缓存的uiimageview分类)。

很多时候图片资源都是作为一个远程资源。为了加载图片需要根据url(统一资源定位符)去获取资源。我以前曾亲身体会到使用

阅读全文 »
12…5
Xiaopingpp

Xiaopingpp

50 日志
20 分类
18 标签
RSS
GitHub E-Mail leetcode
© 2022 Xiaopingpp | 213k | 3:13
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Muse v7.2.0