我想念你的多种方式

  比如,我改变一种习惯,从前我不吃胡萝卜,现在我开始吃胡萝卜,这样每次我吃胡萝卜的时候,都想到你;

  比如,从现在开始,一年之内,我搭乘公车,都提前一站下来,走路到目的地,这样我可以慢下来,看看周围的人和树,还有店铺,它们沉默不语,我也是,因为我想到了你;

  比如,有一个词我永远都不用,每次要用到的时候,我很小心,绕开它,换过一个词,这样我又想到你一次;

  比如,每次我到大街上,如果我很高兴,我就大声叫你的名字,你的名字听起来这么普通,所以,我每次叫你,都会有人回过头来看我,以为我叫的是他们,他们也许对我笑,也许露出困惑的表情,我很高兴,我觉得也许有一次,回头看我的人正好是你;

  比如,夏天的时候,天气太热了,我把手里的水从头上淋下来,这么凉,我把这个行为叫做你;

Read More

Cocoa中常用的宏定义

我们在 Cocoa 的头文件中常会看到很多宏定义,这里列举几个可能会用到的

NS_AVAILABLE

这个宏定义常用于 API 版本控制,表明函数/属性的使用版本,是否废弃等情况,用法如下:

该方法在 iOS 4.0 中引入

+ (void)animateWithDuration:(NSTimeInterval)duration 
animations:(void (^)(void))animations
completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);

Read More

如何让自定义 UIView 支持 XIB

当我们拖拽一个 view 到 XIB 上,然后设置 view 属性的时候有没有想到让自己定义的 view 也支持通过 XIB 设置属性,甚至还能实时渲染。

过去相关接口是不开放的,但是从 XCode6 开始,我们也可以定义像系统控件一样支持在 XIB 视图下设置属性并能实时渲染的控件了。

Read More

通过 XIB 加载 UIView

在项目中有些 view 需要独立做成一个组件,供多个 VC 使用,而且本人项目中习惯使用 XIB,所以这个 view 的组件也希望使用 XIB 来实现。但是当我们创建 UIView 的时候默认是不包含 XIB 文件的,这就需要再创建一个同名的 XIB 文件。但是如何把 XIB 和 UIview 关联起来呢。

通常我们通过代码加载 XIB 的方法是:

+(id)viewFromNibNamed:(NSString*)nibName owner:(id)owner{
NSArray* nibView = [[NSBundle mainBundle] loadNibNamed:nibName owner:owner options:nil];
return [nibView firstObject];
}

Read More

HTTPS 详解

移动端的安全问题越来越受到重视,苹果对 iOS 开发已经默认要求使用 HTTPS 了,HTTPS 的安全性毋庸置疑,在移动端使用 HTTPS 通信,可以省去很多安全方面的困扰。这里就简单说一下 HTTPS。

Read More

使用xib加载View的小技巧

本人在开发中比较喜欢用 xib 来作布局,通常情况下,我们需要把一些常用的 view 封装成组件来供大伙儿使用。但是这个组件一般只是负责 view 层的展示任务,事件相关的业务逻辑需要转发到相应的 controller 里面去。这里介绍一下本人使用的一种方法。

直接上代码

Read More