- 博客(22)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 iOS事件传递和响应机制-基础篇
首先我们来看看iOS中事件的产生和传递过程:1.发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的队列事件中2.UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常会先发送事件给应用程序的主窗口(keyWindow)3.主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件4.找到合适的视图控件后,就会调用视图控件的touches方法来作事件的具体处理:touchesBegin... touchesMoved...touches
2016-07-05 11:59:37
381
1
转载 iOS、mac开源项目及库汇总
只要设置很多不同的HMTL模版,就能轻松的实现一个View多种内容格式的显示,对于不熟悉 HTML或者减轻 工作量而言,把这些工作让设计分担一下还是很好的,也比较容易实现设计想要的效果。- 用一个pan手势来代替UISwipegesture的各个方向、拉伸图片、播放GIF、上拉刷新、把tableview里cell的小对勾的颜色改变、 navigationbar弄成透明的而不是带模糊的效果、改变uitextfield placeholder的颜色和位置。可以自定义自己的表情识别正则,和对应的表情图像。
2023-04-21 11:00:33
532
原创 iOS事件传递和响应机制-原理篇
首先,在我们iOS里,事件的整个周期包括事件的产生、事件的传递以及事件的响应。产生一般是来源于用户的交互,比如点击。事件的传递是正向的,从父控件一直循环往下传递给子控件直到寻找到最合适的view。事件的响应是反向的,顺着响应者链条向上传递,由最上一级控件来处理事件。在这一整个过程中,比较难理解的点是:1、如何找到最适合的view2、寻找最合适的view的底层实现(底层实现)
2023-04-20 10:15:02
703
转载 函数式响应式编程(FRP)基本了解
函数式响应式编程(FRP)基本了解理念我们在日常开发中大多使用的是命令式编程,这种模式依赖于我们希望自己的程序如何来完成这些任务:开发者编写很多的指令来修正程序的状态;如果开发者在正确的位置上编写了正确的指令,那么程序将会正确的完成任务。我们只需要告诉程序怎么做。与此相反,声明式编程(Declarative Programming)将程序员们从纷繁复杂的对如何完成某些任务的细枝末节的流程中解放出来,将关注点集中在任务到底“是什么”而非实现任务的流程。声明式编程是命令式编程之外的几种编程范式的一个
2023-04-04 17:24:21
116
原创 iOS-项目组件化探索
在我们日常开发中我们会发现,随着项目往前推进,模块越来越多,会出现一个.m文件中导入一大堆的头文件这种情况。这个就是我们经常说的耦合太高的问题,此时项目维护就会变得麻烦了。那么为了降低各个模块之间的耦合,我们就可以通过组件化方案来架构我们的项目。在组件化的开发模式中,我们需要给我们的项目进行分层。那么通常我们会分成三层 :基础模块、通用模块、业务模块。对应模块的开发集成顺序大致是从下到上的,即基础模块 -> 通用模块 -> 业务模块。而它们的依赖关系则是从上往下的,业务依赖通用,通用依赖
2020-08-12 09:55:17
175
原创 iOS-AFNetworking源码解析(六)
AFURLResponseSerializationAFURLResponseSerialization是用来将返回的response处理成相应的格式,它通过协议对特定response的data进行解码。- (nullable id)responseObjectForResponse:(nullable NSURLResponse *)response data:(nullable NSData *)data
2020-07-21 16:35:27
236
原创 iOS-AFNetworking源码解析(五)
AFURLRequestSerializationAFURLRequestSerialization是用来对发出的请求进行一些处理AFPercentEscapedStringFromString方法将string里面的:#[]@!$&’()*+,;=字符替换成%NSString * AFPercentEscapedStringFromString(NSString *string) { static NSString * const kAFCharactersGeneralDel
2020-07-21 16:21:56
334
原创 iOS-AFNetworking源码解析(四)
AFNetworkReachabilityManagerAFNetworkReachabilityManager是用来监测网络状态的类。设置状态改变回调方法,当网络状态改变时获得当前网络状态回调过来。网络的状态值有以下四种:ypedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { AFNetworkReachabilityStatusUnknown = -1,// 未知 AFNetworkReach.
2020-07-21 15:55:15
234
原创 iOS-AFNetworking源码解析(三)
AFSecurityPolicy在iOS9后苹果默认是不能使用HTTP请求的,而AFSecurityPolicy主要的作用就是验证HTTPS请求的证书的有效性。如果你还是想要使用HTTP请求,就需要在plist里面设置NSAppTransportSecurity的NSAllowsArbitraryLoads为true,当然我们首先是推荐使用HTTPS的。AFSecurityPolicy是安全策略类,有三种SSL Pinning模式。typedef NS_ENUM(NSUInteger, AFS
2020-07-21 14:13:40
357
原创 iOS-AFNetworking源码解读(一)
AFNetworking,是iOS开发中最常用的网络请求框架,使用方法应该就不用我来bb了,这里主要就它的源码进行解读(其实是和大家一起学习啦????)。先附上原框架github上的地址:https://github.com/AFNetworking/AFNetworking。第一步我们一起来看下AF的文件目录结构。 AFNetworking Example是使用案例,我们直接忽略就好了。那么我们可以看到主要有两个文件夹,AFNetworking和UIKit+AFNetworking.UIKi
2020-07-20 18:01:04
475
原创 ReactNative中导航栏相关属性设置
ReactNative中在对应页面中通过设置navigationOptions来设置,常用属性设置如下:title标题,如果设置了这个导航栏和标签栏的title就会变成一样的,不推荐使用header可以设置一些导航的属性,如果隐藏顶部导航栏只要将这个属性设置为nullheaderTitle设置导航栏标题,推荐headerBackTitle设置跳转页面左侧返回箭头后面的文字,默认是...
2019-12-18 15:45:08
526
原创 iOS项目开发中Git的使用
一、Git介绍Git是一个项目源码管理系统,在多人合作开发过程中是至关重要的。在项目开发中,我们可以通过Git客户端(Github、Tower、Tortoise等)或者通过命令行来使用Git,关于Git基础操作的命令参考文章Git基本操作命令。即使是在独立开发过程中,使用Git管理项目也是有很多的好处的,便于记录版本历史、随时进行版本回退等等。协作则必须有一个规范的工作流程,让大家有效的合作,
2017-07-25 10:42:38
447
原创 Xcode7.2创建一个空工程
1、首先要创建一个Single View Application工程。2、把工程目录中原生的ViewController和Main.storyboard删除,扔进废纸篓。3、然后打开工程项目属性文件,点击Target下面的第一项,再选择General选项卡,向下找到Deployment Info选项下的Main Interface删除Main。
2016-07-26 10:37:40
374
原创 iOS 怎麼搭建項目框架
刚进入一家公司,肯定是以看前辈留下的项目代码起步,这时我们经常会发现别人的代码看的很头疼,所以所一个好的项目框架对于项目的易读性、易维护性以及易扩展性等是非常重要的。項目框架搭建可以用StoryBroad和手写两种方式,这里就对这两种方式进行简单的介绍:一、手写纯代码方式:首先要创建一个空的工程,创建空工程的方法参见:Xcode7.2创建一个空工程然后在项目工程目录里创建相关文件夹(【
2016-07-26 09:56:16
523
转载 iOS中Coredata使用
一、CoreData的简单使用准备工作创建数据库 新建文件,选择CoreData -> DataModel添加实体(表),Add Entity 给表中添加属性,点击Attributes下方的‘+’号创建模型文件 新建文件,选择CoreData -> NSManaged Object subclass根据提示,选择实体通过代码,关联数据库和
2016-07-25 16:17:35
349
翻译 iOS中数据持久化
概论所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,这里就介绍常用的5中方法:plist文件(属性列表)preference(偏好设置)NSKeyedArchiver(归档)SQLite 3CoreData沙盒在介绍各种存储
2016-07-25 16:13:09
437
转载 AFNetworking 3.x 简单使用
由于iOS 7 和 Mac OS X 10.9 Mavericks 中一个显著的变化就是对 Foundation URL 加载系统的彻底重构。而且现在AFN 3.x版本 完全摒弃了NSURLConnection,而使用了NSURLSession。内容大纲:1、AFN 3.X的基本使用2、AFN 3.X的文件下载3、AFN 3.X的文件上传4、AFN 3.X的使用技巧5、AF
2016-07-25 15:44:36
1966
转载 iOS里CALayer的使用
在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等。在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单:C
2016-07-25 08:52:05
532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人