自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yixiangboy的博客

比你牛的人多数比你努力

  • 博客(22)
  • 收藏
  • 关注

原创 博客转移了

博客转移到简书了,简书地址。 欢迎大家关注,csdn不在更新。

2016-07-07 18:53:59 2005

原创 ObjectC Hook函数的实现与实战

一、简介在一个类没有实现源码的情况下,如果你要改变一个类的实现方法,你可以选择重继承该类,然后重写方法,或者使用Category类别名暴力抢先的方式。但是这两种方式,都需要我们在使用的时候改变我们的编程方式,或者继承该类,或者需要引入Category。下面推出的一种方式,不需要我们修改我们编写逻辑的代码,就能实现函数的Hook功能,那就是RunTime中的Method Swizzling—交换方法的

2016-05-21 23:35:12 3347

原创 IOS开发源码阅读篇--FMDB源码分析3(FMDatabaseQueue+FMDatabasePool)

一、前言如上一章所讲,FMDB源码主要有以下几个文件组成:FMResultSet : 表示FMDatabase执行查询之后的结果集。FMDatabase : 表示一个单独的SQLite数据库操作实例,通过它可以对数据库进行增删改查等等操作。FMDatabaseAdditions : 扩展FMDatabase类,新增对查询结果只返回单个值的方法进行简化,对表、列是否存在,版本号,校验SQL等等功

2016-04-28 14:45:07 5453

原创 IOS开发源码阅读篇--FMDB源码分析2(FMDatabase+FMDatabaseAdditions)

一、前言如上一章所讲,FMDB源码主要有以下几个文件组成:FMResultSet : 表示FMDatabase执行查询之后的结果集。FMDatabase : 表示一个单独的SQLite数据库操作实例,通过它可以对数据库进行增删改查等等操作。FMDatabaseAdditions : 扩展FMDatabase类,新增对查询结果只返回单个值的方法进行简化,对表、列是否存在,版本号,校验SQL等等功

2016-04-28 14:44:17 4061

原创 IOS开发源码阅读篇--FMDB源码分析1(FMResultSet)

一、前言FMDB是IOS平台的SQLite数据库框架,以OC的方式封装了SQLite的C语言的API。FMDB使用起来更加的面向对象,省去了很多麻烦、冗余的C语言代码(具体对比详见我的博客IOS开发数据存储篇—libsqlite3和FMDB的基本使用和区别),对比苹果自带的Core Data框架,更加的轻量级和灵活。提供了多线程安全的数据库操作的方法,有效的防止数据混乱。开源地址为https://g

2016-04-28 14:43:05 3810

原创 IOS开发数据存储篇—libsqlite3和FMDB的基本使用和区别

一、简要介绍libsqlite3是IOS中纯C语言操作Sqlite数据库的一个库文件。使用起来和OC面向对象的方式有点别扭,不是特别的方便。FMDB是IOS平台的SQLite数据库框架,以OC的方式封装了SQLite的C语言的API。FMDB使用起来更加的面向对象,省去了很多麻烦、冗余的C语言代码,对比苹果自带的Core Data框架,更加的轻量级和灵活。提供了多线程安全的数据库操作的方法,有效的防

2016-04-06 10:28:52 2674

原创 IOS开发数据存储篇—IOS中的几种数据存储方式

在项目开发当中,我们经常会对一些数据进行本地缓存处理。离线缓存的数据一般都保存在APP所在的沙盒之中。一般有以下几种:1、PList(XML属性列表)在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦//写入文件NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirecto

2016-04-05 21:02:09 1833

原创 IOS开发实践篇--UITableview嵌套UITableView案例实践(仿淘宝商品详情页实现)

一、案例演示IOS中提供的UITableView功能非常强大,section提供分组,cell提供显示,几乎可以应付绝大部分场景。最近想模仿旧版的淘宝的商品详情页(最新的淘宝详情页商品详情和图文详情是两个页面)写一个Demo,后来发现单纯使用UITableView来布局是比较困难的。因为旧版的淘宝详情页中,最外层的View肯定是一个UITableView,但是内层的Tab中,图文介绍、商品详情和评价

2016-03-29 20:17:37 15061

原创 IOS开发基础篇--CAShapeLayer的strokeStart和strokeEnd属性

在不知道有CAShapeLayer的strokeStart和strokeEnd属性的时候,我采取的方法就是实时的 移除旧的CAShapeLayer 然后重绘这个圆形的CAShapeLayer。显然这种方式的效率是不高的。后来在一次看别人Demo的时候,发现别人使用了CAShapeLayer的strokeStart和strokeEnd属性,实现这一个效果十分的简单方便。下面就和大家来讲一讲这两个属性的使用。

2016-02-14 13:22:59 14315

原创 IOS开发UI篇--使用CAShapeLayer实现一个音量大小动态改变的控件

一、案例演示对于实时显示语音音量大小的需求,发现很多人的实现方式通过预放置多张图进行切换进行完成的。这样的处理,不但会浪费App的资源存储空间,而且效率也不高。对于符合某一定规律动态改变的图形,我们也可以考虑通过代码的方式来实现。 二、实现机制 外部轮廓View主要控制显示大小和显示的圆角效果。内部的Layer主要控制动态显示的高度,虽然他是矩形的。但是当把该Layer加入到View中,而该Vi

2016-01-11 13:20:34 4559 2

原创 IOS开发UI篇--使用CAShapeLayer实现复杂的View的遮罩效果

一、案例演示最近在整理一个聊天的项目的时候,发送图片的时候,会有一个三角的指向效果,指向这张图片的发送者。服务端返回给我们的图片只是一张矩形的图片,我们如何把一张矩形的图片或者View,加上一层自定义遮罩效果,就是本文要讲的内容。效果演示如下:第一张是一个View的遮罩效果,第二张是UIImageView的遮罩效果。 二、实现机制在每一View的layer层中有一个mask属性,他就是专门来设置该

2016-01-08 21:01:44 8507 5

原创 IOS开发UI篇--YXFilmSelectView(一个酷炫的电影选票View)

一、项目简介该项目利用UIScrollView的各种滚动事件的监听,仿造时光网选择电影票的UI而开发的一个自定义View。使用简单,可扩展性很强。具备点击每个Item进行选票功能,选票居中功能,滑动时自动选择距离中间最近的View处于选中状态,而且对于滑动时松开手的时候是否有初始速度进行了区分处理。案例演示如下:二、项目讲解三、项目使用四、Demo下载地址Demo下载地址如果

2016-01-05 13:07:36 3405 1

原创 IOS开发UI篇--使用UICollectionView实现一个倾斜列表效果

一、案例演示本案例演示的是每个cell都有一点倾斜角度的效果,如下图所示: 二、知识储备2.1、如何让CELL倾斜其实 layoutAttributes 已经为我们提供了 transform 属性,我们可以使用这个属性来实现旋转。 关键代码示例:- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect{ NSArray *at

2015-11-12 10:36:32 2854

原创 IOS开发UI篇--使用UICollectionView实现一个列表头部拉伸效果的案例

一、案例演示本案例Demo演示的是列表头部具有拉伸的效果,具有良好的用户体验。 当列表的offsetY小于0的时候,顶部的图片会跟随手势的下拉将头部的宽高进行相应地缩放。如下图所示: 二、知识储备2.1、自定义UICollectionViewFlowLayout自定义UICollectionViewFlowLayout就是UICollectionView功能强大的精髓所在,它负责了将各个Cell

2015-11-08 14:02:14 4691

原创 IOS开发UI篇--使用UICollectionView实现一个无限轮播的案例

一、案例演示本案例Demo演示的是一个首页轮播的案例,支持手动轮播和自动轮播。知识点主要集中在UICollectionView和NSTimer的使用。 二、知识储备2.1、UICollectionView横向布局只需要设置UICollectionViewFlowLayout的scrollDirection为UICollectionViewScrollDirectionHorizontal即可。2.

2015-11-07 21:59:07 7375 1

原创 IOS开发UI篇--UICollectionView初步入门

UICollectionView学习总结和Demo示例

2015-11-06 15:09:17 3642 1

原创 IOS开发UI篇--仿射变换(CGAffineTransform)使用小结

一、理论基础请参考CGAffineTransform简单分析二、效果演示三、实现代码3.1:位移变换-(void)positionAnimation{ _demoView.transform = CGAffineTransformIdentity; [UIView animateWithDuration:1.0f animations:^{ _demoView.tra

2015-09-22 12:51:54 8250

原创 IOS开发基础篇--NSNotificationCenter使用小结

前言最近公司组织两个星期的新人培训,事情安排的满满的,周末都没有。说好的一个星期一更新的博客中断了,让大家久等了,现在培训结束,终于又可以安安静静的做一个程序员了,好开心。。。一、NSNotification和Delegate的联系和区别众所周知,IOS中经常会使用到NSNotification和delegate来进行一些类之间的消息传递。言归正传,这两种有什么区别呢? NSNotificatio

2015-08-08 23:15:43 2776

原创 IOS开发UI篇--IOS动画(Core Animation)总结

一、简介IOS 动画主要是指Core Animation框架。官方使用文档地址为:Core Animation Guide。Core Animation是IOS和OS X平台上负责图形渲染与动画的基础框架。Core Animation可以作用与动画视图或者其他可视元素,为你完成了动画所需的大部分绘帧工作。你只需要配置少量的动画参数(如开始点的位置和结束点的位置)即可使用Core Animation的

2015-07-23 09:17:59 23406 17

原创 IOS开发UI篇--一个侧滑菜单SlidingMenu

一、简介侧滑菜单已经成为app一个极常用的设计,不管是事务类,效率类还是生活类app。侧滑菜单因Path 2.0和Facebook为开发者熟知,国内目前也有很多流行app用到了侧滑菜单,比如QQ、网易邮箱、知乎等等。IOS官方并没有提供类似于侧滑栏之类的组件,所以我们需要自己写一个侧滑栏控件,为了不要重复造轮子,我在github上找到了一个使用简单方便,新手容易入手的侧滑菜单控件,地址:https:

2015-07-14 20:47:46 10441 2

原创 IOS开发UI篇--一个支持图文混排的ActionSheet

一、简介UIActionSheet是IOS提供给我们开发者的底部弹出菜单控件,一般用于菜单选择、操作确认、删除确认等功能。IOS官方提供的以下方式对UIActionView进行实例化:- (instancetype)initWithTitle:(NSString *)title delegate:(id<UIActionSheetDelegate>)delegate cancelButtonTitl

2015-07-06 19:52:00 3271 2

原创 IOS开发UI篇--一个可扩展性极强的树形控件

一、简介树形控件在多列列表、多级菜单中使用比较常见,比如:国家-省份-城市 多级选择、学校-专业-班级 多级选择等等。然而IOS自带控件中并不存在树形控件,我们要在IOS开发中使用树形控件,通常需要自己扩展UITableView列表控件。现在在这里开源一个自己写的高扩展性,高复用性的IOS树形结构控件。支持无限极树形结构。使用的是非递归方式。代码简单易懂,扩展方便。图片演示如下: 二、使用

2015-07-05 14:07:40 10102 10

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除