iOS H5容器的一些探究(二):iOS下的黑魔法NSURLProtocol
一、前言 NSURLProtocol是iOS中 URL Loading System 的一部分。如果开发者自定义的一个NSURLProtocol并且注册到app中,那么在这个自定义的NSURLProtocol中我们可以拦截UIWebView,基于系统的NSURLConnection或者NSURLSession进行封装的网络请求,然后做到自定义的response返回。非常强大。 推荐一个iOS交流群:624212887,群文件自行下载,不管你是小白还是大牛热烈...【详细】
ios H5 黑魔法
2018年12月12日 赞:0 评论:0 阅读:28
iOS H5容器的一些探究(一):UIWebView和WKWebView的比较和选择
一、Native开发中为什么需要H5容器 Native开发原生应用是手机操作系统厂商(目前主要是苹果的iOS和google的Android)对外界提供的标准化的开发模式,他们对于native开发提供了一套标准化实现和优化方案。但是他们存在一些硬伤,比如App的发版周期偏长、有时无法跟上产品的更新节奏;灵活性差,如果有较大的方案变更,需要发版才能解决;...【详细】
ios H5 探究
2018年12月10日 赞:0 评论:0 阅读:55
ObjectC Hook函数的实现与实战
一、简介 在一个类没有实现源码的情况下,如果你要改变一个类的实现方法,你可以选择重继承该类,然后重写方法,或者使用Category类别名暴力抢先的方式。但是这两种方式,都需要我们在使用的时候改变我们的编程方式,或者继承该类,或者需要引入Category。下面推出的一种方式,不需要我们修改我们编写逻辑的代码,就能实现函数的...【详细】
ios OjectC 实战
2018年12月06日 赞:0 评论:0 阅读:63
iOS开发源码阅读篇--FMDB源码分析3(FMDatabaseQueue+FMDatabasePool)
一、前言 如上一章所讲,FMDB源码主要有以下几个文件组成: FMResultSet : 表示FMDatabase执行查询之后的结果集。 FMDatabase : 表示一个单独的SQLite数据库操作实例,通过它可以对数据库进行增删改查等等操作。 FMDatabaseAdditions : 扩展FMDatabase类,新增对查询结果只返回单个值的方法进行简化,对表、列是否存在,版本号,校验SQL等等功能。 FMData...【详细】
ios FMDB 源码
2018年12月03日 赞:0 评论:0 阅读:152
iOS开发源码阅读篇--FMDB源码分析2(FMDatabase+FMDatabaseAdditions)
一、前言 如上一章所讲,FMDB源码主要有以下几个文件组成: FMResultSet : 表示FMDatabase执行查询之后的结果集。 FMDatabase : 表示一个单独的SQLite数据库操作实例,通过它可以对数据库进行增删改查等等操作。 FMDatabaseAdditions : 扩展FMDatabase类,新增对查询结果只返回单个值的方法进行简化,对表、列是否存在,版本号,校验SQL等等功能。 FMData...【详细】
ios FMDB 源码
2018年12月03日 赞:0 评论:0 阅读:96
iOS开发源码阅读篇--FMDB源码分析1(FMResultSet)
一、前言 FMDB是IOS平台的SQLite数据库框架,以OC的方式封装了SQLite的C语言的API。FMDB使用起来更加的面向对象,省去了很多麻烦、冗余的C语言代码具体对比详见我的简书iOS开发数据存储篇—libsqlite3和FMDB的基本使用和区别,对比苹果自带的Core Data框架,更加的轻量级和灵活。提供了多线程安全的数据库操作的方法,有效的防止数据混乱。开...【详细】
ios FMDB 源码
2018年12月01日 赞:0 评论:0 阅读:128
iOS开发数据存储篇—libsqlite3和FMDB的基本使用和区别
一、简要介绍 libsqlite3是IOS中纯C语言操作Sqlite数据库的一个库文件。使用起来和OC面向对象的方式有点别扭,不是特别的方便。 FMDB是IOS平台的SQLite数据库框架,以OC的方式封装了SQLite的C语言的API。FMDB使用起来更加的面向对象,省去了很多麻烦、冗余的C语言代码,对比苹果自带的Core Data框架,更加的轻量级和灵活。提供了多线程安全的数...【详细】
ios 数据存储 FMDB
2018年11月30日 赞:1 评论:0 阅读:77
iOS开发数据存储篇—iOS中的几种数据存储方式
在项目开发当中,我们经常会对一些数据进行本地缓存处理。离线缓存的数据一般都保存在APP所在的沙盒之中。一般有以下几种: 1、PList(XML属性列表) 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦 //写入文件 NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES...【详细】
ios 开发 数据存储
2018年11月29日 赞:0 评论:0 阅读:129
iOS开发实践篇--UITableview嵌套UITableView案例实践(仿淘宝商品详情页实现)
一、案例演示 IOS中提供的UITableView功能非常强大,section提供分组,cell提供显示,几乎可以应付绝大部分场景。最近想模仿旧版的淘宝的商品详情页(最新的淘宝详情页商品详情和图文详情是两个页面)写一个Demo,后来发现单纯使用UITableView来布局是比较困难的。因为旧版的淘宝详情页中,最外层的View肯定是一个UITableView,但是内层的Tab中...【详细】
ios 程序员 开发
2018年11月29日 赞:0 评论:0 阅读:89
十年开发的程序员,总结出了这些开发经验
在一线做了十年的开发,经历了网易、百度、腾讯研究院、MIG 等几个地方,陆续做过 3D 游戏、2D 页游、浏览器、移动端翻译 app 等。 积累了一些感悟。必然有依然幼稚的地方,就当抛砖引玉,聊为笑谈。 一、对于团队而言,流程太重要了 行军打仗,你需要一个向导;如果没有向导,你需要一个地图;如果没有地图,至少要学习李广,找...【详细】
ios 程序员 开发
2018年11月27日 赞:0 评论:0 阅读:189
iOS开发基础篇--CAShapeLayer的strokeStart和strokeEnd属性
一、案例演示 最近有一个小需求,就是要做一个圆形进度条,大概样子如下: 。 在不知道有CAShapeLayer的strokeStart和strokeEnd属性的时候,我采取的方法就是实时的 移除旧的CAShapeLayer 然后重绘这个圆形的CAShapeLayer。显然这种方式的效率是不高的。后来在一次看别人Demo的时候,发现别人使用了CAShapeLayer的strokeStart和strokeEnd属性,实现这一个效...【详细】
ios CAShapeLayer strokeStart
2018年11月27日 赞:0 评论:0 阅读:110
iOS开发UI篇--使用CAShapeLayer实现一个音量大小动态改变的控件
一、案例演示 对于实时显示语音音量大小的需求,发现很多人的实现方式通过预放置多张图进行切换进行完成的。这样的处理,不但会浪费App的资源存储空间,而且效率也不高。对于符合某一定规律动态改变的图形,我们也可以考虑通过代码的方式来实现。 二、实现机制 外部轮廓View主要控制显示大小和显示的圆角效果。内部的Layer主要...【详细】
ios CAShapeLayer 音量控件
2018年11月26日 赞:0 评论:0 阅读:103
iOS开发UI篇--使用CAShapeLayer实现复杂的View的遮罩效果
一、案例演示 最近在整理一个聊天的项目的时候,发送图片的时候,会有一个三角的指向效果,指向这张图片的发送者。服务端返回给我们的图片只是一张矩形的图片,我们如何把一张矩形的图片或者View,加上一层自定义遮罩效果,就是本文要讲的内容。效果演示如下:第一张是一个View的遮罩效果,第二张是UIImageView的遮罩效果。 二、...【详细】
ios CAShapeLayer 遮罩效果
2018年11月26日 赞:0 评论:0 阅读:60
iOS开发UI篇--YXFilmSelectView(一个酷炫的电影选票View)
一、项目简介 该项目利用UIScrollView的各种滚动事件的监听,仿造时光网选择电影票的UI而开发的一个自定义View。使用简单,可扩展性很强。具备点击每个Item进行选票功能,选票居中功能,滑动时自动选择距离中间最近的View处于选中状态,而且对于滑动时松开手的时候是否有初始速度进行了区分处理。案例演示如下: 二、项目讲解 1、初...【详细】
ios UI 电影选票
2018年11月24日 赞:0 评论:0 阅读:119
iOS开发UI篇--使用UICollectionView实现一个倾斜列表效果
一、案例演示 本案例演示的是每个cell都有一点倾斜角度的效果,如下图所示: 二、知识储备 2.1、如何让CELL倾斜 其实 layoutAttributes 已经为我们提供了 transform 属性,我们可以使用这个属性来实现旋转。 关键代码示例: - (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect{ NSArray *attributes = [super layoutAttributesForElementsInRect:rect]; for (UICollectionViewLayout...【详细】
ios UI 列表效果
2018年11月23日 赞:0 评论:0 阅读:129
iOS开发UI篇--使用UICollectionView实现一个列表头部拉伸效果的案例
一、案例演示 本案例Demo演示的是列表头部具有拉伸的效果,具有良好的用户体验。 当列表的offsetY小于0的时候,顶部的图片会跟随手势的下拉将头部的宽高进行相应地缩放。如下图所示: 二、知识储备 2.1、自定义UICollectionViewFlowLayout 自定义UICollectionViewFlowLayout就是UICollectionView功能强大的精髓所在,它负责了将各个Cell、Supplementary View和D...【详细】
ios 无限轮播 案例
2018年11月23日 赞:0 评论:0 阅读:91
iOS开发UI篇--使用UICollectionView实现一个无限轮播的案例
一、案例演示 本案例Demo演示的是一个首页轮播的案例,支持手动轮播和自动轮播。知识点主要集中在UICollectionView和NSTimer的使用。 二、知识储备 2.1、UICollectionView横向布局 只需要设置UICollectionViewFlowLayout的scrollDirection为UICollectionViewScrollDirectionHorizontal即可。 2.2、NSTimer的基本使用 NSTimer的初始化: + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInte...【详细】
ios 无限轮播 案例
2018年11月21日 赞:0 评论:0 阅读:127
iOS开发UI篇--UICollectionView初步入门
一、UICollectionView的简介 UICollectionView是iOS 6中引进的列表展现控件,用于展示集合视图,布局更加灵活,可以高度定制内容的展现,可以有效的进行数据管理,即使对于大量数据,也非常的高效。苹果官方给出了Demo点我下载是一个类似于Android里面的GridView的实现。和UITableView的实现相比较,他对于每一个Item都是一次复用,而UITableView只能对...【详细】
ios UI 初步入门
2018年11月20日 赞:0 评论:0 阅读:124
iOS开发UI篇--仿射变换(CGAffineTransform)使用小结
一、理论基础 请参考 CGAffineTransform简单分析 二、效果演示 三、实现代码 3.1:位移变换 -(void)positionAnimation{ _demoView.transform = CGAffineTransformIdentity; [UIView animateWithDuration:1.0f animations:^{ _demoView.transform = CGAffineTransformMakeTranslation(100, 100); }]; } 3.2:缩放变换 -(void)scaleAnimation{ _demoView.transform = CGAffineTransformIdentity; [UIView animateWithDuration:1.0f animations:^{...【详细】
ios UI 仿射变换
2018年11月20日 赞:0 评论:0 阅读:137
iOS开发基础篇--NSNotificationCenter使用小结
前言 最近公司组织两个星期的新人培训,事情安排的满满的,周末都没有。说好的一个星期一更新的博客中断了,让大家久等了,现在培训结束,终于又可以安安静静的做一个程序员了,好开心。。。 这是一个我的iOS交流群:624212887,群文件自行下载,不管你是小白还是大牛热烈欢迎进群 ,分享面试经验,讨论技术, 大家一起交流学习...【详细】
ios NSNotificationCenter 基础
2018年11月19日 赞:0 评论:0 阅读:140
共24个 共2页 12
sina weixin mail 回到顶部