自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 资源 (2)
  • 收藏
  • 关注

原创 CSSwiftExtension - 贡献一个非常好用的Swift extension集合

CSSwiftExtension是我个人开源的一个非常有用的Swift extension集合。支持CocoadPods和Carthage。 目前主要包含Foundation和UIKit的两类extension.

2017-02-01 12:31:20 1194

原创 iOS --- 一张图看懂转场动画

转场动画在iOS开发中非常常见, 其原理大概如下图: 一切都是从图中的 * Transition Animation * 开始.本文主要基于以上这张图, 讲解了transitionFromViewController, CATransition, TransitionAnimation三种转场实现方式.transitionFromViewController我们可以先看UIViewControll

2016-08-16 23:30:57 3066

原创 iOS --- 如何暂停和继续CALayer上的动画

本文主要介绍了如何暂停和继续CALayer的动画. 首先来看CALayer./** The base layer class. **/@interface CALayer : NSObject <NSCoding, CAMediaTiming>NSCoding比较常用, 就不多说了. 那这个CAMediaTiming是个什么东西!

2016-08-16 23:28:27 5491

原创 iOS --- 线程安全之semaphore

dispatch_semaphore是GCD中常见的同步方式, 相关方法有三个: dispatch_semaphore_create, dispatch_semaphore_wait, dispatch_semaphore_signal.

2016-07-31 14:47:29 908

转载 [转] --- Core Data 线程大揭秘

原文地址: Core Data 线程大揭秘, 作者是Marcus Zarra. Marcus Zarra Marcus Zarra 最为出名的就是他精通 Core Data、持久化存储以及网络等相关知识。他从 2004 年开始开发 Cocoa 应用,绝大多数时间他都用在开发软件上面。

2016-07-31 10:40:06 898

原创 iOS --- 自定义navigationBar的两种常见方式

我们经常会有自定义navigationBar的需求, 通常有两种实现方式.

2016-07-27 22:27:17 2043

原创 iOS --- 使用runtime将JSON转换成Model

这里简单介绍如何使用runtime将JSON转换成Model.

2016-07-26 22:33:20 2102

原创 iOS --- 关于KVC使用的一些小技巧

KVC是iOS开发中经常会用到的技巧, 主要包括valueForKey:/setValue:ForKey:, valueForKeyPath:/setValue:forKeyPath:两队组合方法. valueForKey:会首先查找以参数名命名的getter方法, 如果没有找到, 则在对象内寻找名称格式为_key或key的实例变量.

2016-07-26 22:21:07 1143

原创 iOS --- 为UIButton添加setBackgroundColor:forState:方法(包含OC和Swift两个版本)

有这样的一类简单需求: UIButton的背景色要与其state相关, 如未点击时显示蓝色, 点击时显示绿色. 但是, UIButton自身并未提供setBackgroundColor:forState:方法, 因此我们不得不单独在touchDown等方法中去更新其backgroundColor属性. 这里介绍如何为UIButton提供该扩展方法, Objective-C和Swift的版本都有.

2016-07-07 21:50:41 2541

原创 iOS --- 如何在Swift项目中使用runtime?

在Objective-C的项目中, 经常遇到通过runtime来获取类和对象的成员变量, 属性, 方法, 在此基础上可以实现method swizzling. Swift代码中已经没有了Objective-C的运行时消息机制, 在代码编译时即确定了其实际调用的方法. 所以纯粹的Swift类和对象没有办法使用runtime, 更不存在method swizzling.为了兼容Objective-C,

2016-07-03 22:46:11 6301

原创 iOS---防止UIButton重复点击的三种实现方式

通常, 我们会采用如下的一些措施来防止重复点击UIButton:使用UIButton的enabled或userInteractionEnabled使用UIButton的enabled属性, 在点击后, 禁止UIButton的交互, 直到完成指定任务之后再将其enable即可.

2016-06-29 14:39:59 14431 1

原创 iOS---如何在CocoaPods上发布自己的项目

目前, 在iOS开发中, CocoaPods应该算是使用最为频繁的包管理工具了.

2016-06-29 00:05:37 1714 1

原创 iOS---使用CAEmitterLayer制作发射粒子的特效

CAEmitterLayer是QuartzCore提供的粒子引擎, 可用于制作美观的粒子特效. 如下图是一个粒子特效的截图, 实际的动态效果会更好, 因为gif制作比较模糊就没有贴出来.CAEmitterLayerCAEmitterLayer与CAEAGLLayer类似, 如果放在UIView中则要重写UIView的layerClass方法

2016-06-18 09:40:48 2511

原创 iOS---Objective-C中@class与#import的区别

在Objective-C的项目中, @class通常放在.h文件中, 主要作用在于提升编译性能, 且能防止头文件的递归import.编译性能的考虑通常, 使用#import引入一个类的头文件, 编译时会将该类的头文件中的所有信息都引入, 包含属性和方法, 但有时候却不需要这么多, 且包含这些信息会降低编译性能.

2016-06-15 00:04:36 1697

原创 从iOS端Facebook分享的预览效果到Open Graph Protocol(开放内容协议)

主要记录了在iOS端进行Facebook分享时遇到的一个问题, 涉及到Open Graph Protocol(开放内容协议).

2016-06-12 22:41:37 2851

转载 [转]---使用 Realm 和 Swift 创建 ToDo 应用

本文转载自SwiftGG, 原文地址: [使用 Realm 和 Swift 创建 ToDo 应用](http://swift.gg/2015/12/08/building-a-todo-app-using-realm-and-swift/). 同时加上了个别的补充.

2016-06-10 20:31:13 1166

转载 [转] --- 转载一份开源的高斯模糊算法

高斯模糊是非常常见的图像算法之一. 转载来源: StackBlurDemo 感谢作者.

2016-05-03 23:10:57 868

原创 iOS --- 理解Runtime机制及其使用场景

Runtime是iOS中比较难以理解, 但又非常强大的技术.所谓运行时, 就是尽可能地把决定从编译器推迟到运行期, 就是尽可能地做到动态. 只是在运行的时候才会去确定对象的类型和方法的. 因此利用Runtime机制可以在程序运行时动态地修改类和对象中的所有属性和方法.Objective-C中调用对象的方法时, 会向该对象发送一条消息, runtime根据该消息做出反应.Runtime是一套比较底层的纯C语言的

2016-04-17 22:25:33 10843 2

原创 iOS --- 获取屏幕顶层的UIViewController

经常会遇到一些场景, 要通过代码获取到当前显示在屏幕最顶层的UIViewController. 如何获取呢?

2016-04-04 21:14:50 4598

原创 iOS --- 理解UIWindow及其常见使用场景

UIWindow继承自UIView, 用来管理和协调各种视图. 提供一个区域来显示视图, 将事件event分发给视图. 每个iOS应用必须包含一个window用于展示APP的交互页面. 且一个APP通常只有一个UIWindow, 包含了APP的可视内容. 即使有多个, 也只有一个UIWindow可以接收用户的touch事件.

2016-04-04 20:48:01 1393

原创 iOS --- 通过openURL实现APP之间跳转并传递数据

在博客iOS — 通过UIApplication的openURL来实现APP之间的相互跳转中, 介绍了如何实现iOS APP之间的相互跳转, 使用的就是UIApplication的openURL:方法. 那么, 如果想要在openURL方法中传递参数和数据, 应该如何实现呢?

2016-04-04 15:52:50 6667

原创 iOS --- OpenGLES之图片纹理

在之前的一系列博客中, 介绍了OpenGLES相关的着色器Shader, 顶点及图形绘制: [iOS — OpenGLES之简单的图形绘制()]http://icetime17.github.io/2016/01/03/2016-01/iOS-OpenGLES之简单的图形绘制/) 那么, 接下来将进入图片纹理Texture的部分. 这里, 我们首先使用OpenGLES的方式绘制一张图片到屏幕上.

2016-03-27 20:39:23 5677 2

原创 iOS --- 使用runtime解决3D Touch导致UIImagePicker崩溃的问题

UIImagePickerController是iOS中自带的系统相册选择器, 使用起来非常简便.3D Touch是iPhone 6s/6splus设备才有的特点, 在系统相册中长按一个照片, 可触发3D Touch相关的操作.而在没有3D Touch的设备中, 在系统相册中长按一个照片, 会导致crash. 这看起来像是iOS系统的一个bug.

2016-03-20 09:06:19 1920

原创 iOS --- 两个NSIndexPath对象的正确比较方式

在UITableView和UICollectionView中, 经常会遇到比较两个NSIndexPath对象是否相同的情况. 只能分别对NSIndexPath对象的section与row或item进行判断

2016-03-03 07:38:12 6926

原创 iOS --- 为UISlider添加点击事件

UISlider是iOS中非常常见的UI控件, 继承自UIControl, 可设置valueChanged等事件响应方法. 但其默认不支持单击事件, 本文即简单地实现了可单击选值的UISlider.

2016-02-23 07:35:48 10417 1

原创 iOS --- 如何隐藏APP的statusBar

如何隐藏APP的statusBar

2016-02-14 09:22:54 976

原创 iOS --- 根据字符串的实际大小来计算UILabel的size

很多UILabel的使用场景下,需要根据字符串的实际大小来计算UILabel的size,以保证UILabel的美观:使用NSString的方法:(CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode即可计算字符串的大小。

2016-02-13 21:58:42 4932

原创 iOS --- Objective-C 的switch语句中不能初始化对象

在Objective-C代码中,switch语句中不能进行对象的初始化操作。

2016-02-13 16:35:32 1778 1

原创 iOS --- 本地推送通知 UILocalNotification

本地推送UILocalNotification常用于定期提醒用户使用该APP,如AirBrush的定期提醒用户拍照,运动锻炼工具的每天锻炼提醒。不同于远程推送RemoteNotification,本地推送一般较固定,通常事先设置好推送周期。而推送内容往往也是固定的,可存放于plist文件中。本地推送并不依赖于网络连接,可简单将其视为一个定时装置即可。

2016-02-11 11:25:08 2092

原创 C++ --- 常见容器之vector

vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

2016-01-30 14:10:56 571

翻译 [译] --- OpenGL ES 2.0 for iPhone Tutorial Part 2: Textures

本文译自:OpenGL ES 2.0 for iPhone Tutorial Part 2: Textures。其中主要介绍了OpenGLES纹理相关的内容。

2016-01-11 21:16:46 1169

原创 iOS --- OpenGLES之顶点缓存对象VBO

在上一篇博客 iOS — OpenGLES之简单的图形绘制 中,使用OpenGLES绘制了基本的三角形和矩形。在矩形绘制过程中,使用到了VBO,即Vertex Buffer Object,可视为GPU中的一块缓冲区buffer,用于存储顶点的所有信息。OpenGL在GPU中记录着这个VBO的id和对应的显存地址(或地址偏移)。 使用VBO缓存顶点数据,只在初始化缓冲区及在顶点数据有变化时才需要对该缓冲区进行操作。

2016-01-10 09:52:48 2236

原创 iOS --- OpenGLES之简单的图形绘制

在上一篇博客 iOS — OpenGLES之着色器(shader)的编译、链接及使用 中,简要介绍着色器(shader)的编译、链接及使用。本文将在之前一系列OpenGLES相关博客的基础上,使用OpenGLES绘制基本的图形。

2016-01-03 19:22:35 3867

原创 iOS --- OpenGLES之着色器(shader)的编译、链接及使用

在上一篇博客 iOS — OpenGLES之着色器(shader)语法介绍 中,简要介绍了OpenGLES的着色器shader的基本语法,以及Vertex Shader和Fragment Shader的差异。本文中,将简要介绍着色器(shader)的编译、链接及使用。

2016-01-03 18:38:15 3532

原创 iOS --- OpenGLES之着色器(shader)语法介绍

上一篇博客 [iOS --- OpenGLES之初步认识](http://blog.csdn.net/icetime17/article/details/50429658) 中主要介绍了OpenGLES在iOS中的简单使用,包括创建EAGLContext,设置CAEAGLLayer属性,使用renderbuffer和framebuffer等。这一次,我们将主要学习OpenGLES的着色器shader的基本语法。

2015-12-31 08:07:00 6639

原创 iOS --- 获取UIView的模糊效果截图

我们常见到一些APP中对指定UIView区域进行模糊处理的效果。实现此效果,需要用到UIView截图和UIImage的ImageEffects扩展。

2015-12-30 19:34:00 1851

原创 iOS --- OpenGLES之初步认识

iOS上绘制图形的方式很多,UIKit,CoreGraphics,SpriteKit,OpenGL ES,Metal等。OpenGL ES是一套非常底层但使用非常广泛的C语言API,专为移动设备定制,可在不同的手机系统或浏览器上使用,渲染效果非常好。

2015-12-30 07:29:30 4384

原创 iOS --- CoreGraphics中三种绘图context切换方式的区别

CoreGraphics的使用过程中,经常会遇到绘图context切换的操作,一般使用用到CGContextSaveGState/CGContextRestoreGState,UIGraphicsPushContext/UIGraphicsPopContext,UIGraphicsBeginImageContext/UIGraphicsEndImageContext这三对方法。

2015-12-29 21:45:10 4363

原创 iOS --- 多线程之NSOperation

NSOperation基于GCD封装实现的,比GCD稍慢,可设定各个操作之间的依赖关系及优先级等。相对于GCD而言,NSOperation主要会涉及到使用NSOperationQueue来调度和管理各个NSOperation对象及操作。

2015-12-27 19:23:59 670 1

原创 iOS --- 多线程之GCD

GCD(Grand Central Dispatch)是一套低层级的C语言API,通过GCD,可向队列中添加一段代码段(block或C函数指针),而不需要直接和线程打交道。GCD在后端管理着一个线程池,不仅决定着代码块在哪个线程中执行,还可根据可用的系统资源对线程进行管理,从而解决了线程创建管理等的问题。GCD的使用方式非常灵活,是目前iOS开发中最为常用的多线程技术。

2015-12-27 18:27:44 620

矩阵理论\研究生教材+矩阵论习题解答

矩阵理论\研究生教材+矩阵论习题解答 矩阵理论\研究生教材+矩阵论习题解答

2010-09-19

矩阵理论\矩阵理论补充习题及10年试题

矩阵理论\矩阵理论补充习题及10年试题 矩阵理论\矩阵理论补充习题及10年试题

2010-09-19

空空如也

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

TA关注的人

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