• 代码处理 iOS 的横竖屏旋转

    Posted by : lon.y@qq.com on 2017年7月15日

    一、监听屏幕旋转方向 在处理iOS横竖屏时,经常会和UIDeviceOrientation、UIInterfaceOrientation和UIInterfaceOrientationMask这三个枚举类型打交道,它们从不同角度描述了屏幕旋转方向。 1、UIDeviceOrientation:设备方向 iOS的设备方向是通过iOS的加速计来获取的。 1)iOS定义了以下七种设备方向 typedef NS_ENUM(NSInteger, UIDeviceOri

    阅读全文...

  • Quartz2D 编程指南(一)概览、图形上下文、路径、颜色与颜色空间

    Posted by : lon.y@qq.com on 2017年7月4日

    概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 0.说明 本篇博客主要是对官方文档的总结与补充。翻译部分参考了南峰子的博客。你可以在参考资料中查看。 1.概览 简介 Quartz2D 是二维图形绘制引擎,支持 iOS 和 OS X。 Page Quartz2D 在图像中使用了绘画者模型。在绘画者模型中,每个连续的绘制操作都是将一个绘制层放置

    阅读全文...

  • 微信和支付宝支付-看我的,用我的就够了

    Posted by : lon.y@qq.com on 2017年7月4日

    一、前言 1、之前写了一篇支付宝支付——统一wap和支付宝钱包回调,然后有需求说也弄一个微信支付的,block回调,其实微信支付的API提供挺好的,只有一个代理方法处理支付结果,不像支付宝有两种回调,当然,使用block回调简单很多,所以我也单独封装了 微信支付,block回调 此处就不开篇讲解了,大家需要的话可以去我的gitHub上clone 2、还有提出要整合支付宝和微信,这个提议不错,因为集成支付功能的app一般都有支付宝和微信,既然两种都需要,那么

    阅读全文...

  • FMDB 二次封装,面向模型

    Posted by : lon.y@qq.com on 2017年7月4日

    一、FMDB简单介绍 FMDB是OC的方式封装了SQLite的C语言API,并且它对于多线程的并发操作进行了处理,所以是线程安全的;相对系统提供的CoreData,轻量好多,使用起来也很方便,除查询以外的所有操作,都称为“更新”,这里就不详细介绍了,不是本文的主题 FMDB gitHub地址 二、为什么要再封装? 1、隔离网络第三方框架,方便修改维护 2、虽然FMDB已经封装了SQLite,但依然需要写SQL语句,对于模型中属性比较多的话,拼接SQL语句将

    阅读全文...

  • ReactiveCocoa 中 RACScheduler是如何封装GCD的

    Posted by : lon.y@qq.com on 2017年7月4日

    前言 在使用ReactiveCocoa 过程中,Josh Abernathy和Justin Spahr-Summers 两位大神为了能让RAC的使用者更畅快的在沉浸在FRP的世界里,更好的进行并发编程,于是就对GCD进行了一次封装,并与RAC的各大组件进行了完美的整合。 自从有了RACScheduler以后,使整个RAC并发编程的代码里面更加和谐统一,更加顺手,更加“ReactiveCocoa”。 目录 1.RACScheduler是如何封装GCD的 2.

    阅读全文...

  • RxSwift 入坑解读-你所需要知道的各种概念

    Posted by : lon.y@qq.com on 2017年7月4日

    相信大家很早就听说过函数式响应编程概念,我是去年面试的时候接触到函数式响应编程的,当时也是第一次接触到MVVM这个概念,转眼都一年过去了,我却没有在函数式编程上做深入的研究,说来还真是惭愧。 不过最近由于想要使用RxSwift,所以趁这个时候好好接触和研究一下传说中的函数式编程,由于网上关于RxSwift的教程资料很少,这篇文章其实就是最RxSwift官方文档和一些概念做一些解读。算是大家学习的参考文章吧! 先挖个坑,这可能会是一个RxSwift系列,希望

    阅读全文...

  • 有趣的 KVC -几行代码打造一个万能容器对象

    Posted by : lon.y@qq.com on 2017年7月4日

    容器.jpg 写在前面 之前写事岀无常必有妖-iOS捉妖记之(Runtime)时说好要写一篇关于runtime的详细介绍的。看到这个标题关注了我的小伙伴们放下手里的西瓜刀,小的并没有弃坑,只是有简友评论希望多结合实例来介绍runtime所以这几天正苦苦搜寻通俗易懂又比较有价值的实例,所以先来水一篇KVC相关的文章。 文章最后会鸡贼的教大家一个KVC实用技巧,打造一个万能容器对象!如果你们公司的后台返回的参数飘忽不定而老项目中接收后台返回数据的又是用的一个通

    阅读全文...

  • iOS 组件化方案,带有源码

    Posted by : lon.y@qq.com on 2017年7月4日

    概述 近一年iOS业界讨论组件化方案甚多,大体来说有3种。 Protocol注册方案 URL注册方案 Target-Action runtime调用方案 URL注册方案据我了解很多大公司都在采用,蘑菇街 App 的组件化之路蘑菇街的Limboy在这篇博客中做了很详尽的阐述 Target-Action runtime调用方案Casa在 iOS应用架构谈 组件化方案中也做了很详尽的描述,前阵时间Casa开了一篇博客在现有工程中实施基于CTMediator的组件

    阅读全文...

  • 为什么 object_getClass(obj) 与 [OBJ class] 返…

    Posted by : lon.y@qq.com on 2017年7月4日

    引言 该文章与runtime相关,开始并没打算写,因为大神们写了好多runtime的文章,分析的都很全面、很深刻,再写也就是班门弄斧。但还是写了,因为我在看一个东西的时候偶尔发现了object_getClass(obj)与[OBJ class]返回的指针不同,感觉非常奇怪,因为它颠覆了我们对runtime中类结构模型的认识,后来在网上找了相关问题的答案,发现并没有,所以打算写一篇文章来和大家说说这个问题,我会讲一点点runtime,但不会系统的讲,目的就是

    阅读全文...

  • iOS 更加优雅便捷的UIAlertView/UIAlertController…

    Posted by : lon.y@qq.com on 2017年7月4日

    前言: 之前做过一套关于UIAlertView/UIAlertController的混合封装,详见: iOS (封装)一句话调用系统的alertView和alertController 这个是将alertView和alertController做了版本适配封装在一起的,提供了变参和数组两种方式,不过现在看来,虽然是“一句话”调用,但并不是很优雅的方式。 这次,改变了方案,将UIAlertView和UIAlertController分开进行了处理,整体代码也

    阅读全文...