在Xcode中使用C++与Objective-C混编

有时候,出于性能或可移植性的考虑,需要在iOS项目中使用到C++。 假设我们用C++写了下面的People类: // // People.h // MixedWithCppDemo // // Created by Jason Lee on 12-8-18. // Copyright (c) 2012年 Jason Lee. All rights reserved. // #ifnd...
阅读(21661) 评论(3)

iOS中的图像处理(三)——混合运算

有时候,单独对一张图像进行处理是很难或者根本达不到我们想要的效果的。一个好的滤镜效果的诞生,往往要经过很多复杂步骤、细致微调、图片应用效果观察以及很多图层叠加。 我在JSWidget上发现了一些常用混合算法,对应着一些常用混合模式,通过这些blend modes,我们可以指定两张图像如何混合。 不过在此之前,我们需要纯颜色图像和渐变图像来做辅助: + (UIImage *)imageWith...
阅读(5553) 评论(3)

iOS中的图像处理(二)——卷积运算

关于图像处理中的卷积运算,这里有两份简明扼要的介绍:文一,文二。 其中,可能的一种卷积运算代码如下: - (UIImage*)applyConvolution:(NSArray*)kernel { CGImageRef inImage = self.CGImage; CFDataRef m_DataRef = CGDataProviderCopyData(CGImageGetDataP...
阅读(5793) 评论(2)

iOS中的图像处理(一)——基础滤镜

最近在稍微做一些整理,翻起这部分的代码,发现是两个多月前的了。 这里讨论的是基于RGBA模型下的图像处理,即将变换作用在每个像素上。 代码是以UIImage的category形式存在的: typedef struct _singleRGBA { unsigned char red; unsigned char green; unsigned char blue;...
阅读(10539) 评论(6)

autorelease探究

有时候我们需要延迟一个对象的引用计数减一操作,比如: + (NSArray *)array { return [[NSArray alloc] init] autorelease]; } 由于方法名并不以alloc, new, copy, mutableCopy开头,并且方法内部使用了alloc,需要对因此产生的引用计数负责。 不过如果直接调用release,将会返回野指针,...
阅读(5098) 评论(0)

为何NSTimer在界面滚动时无响应

之前做了个弱提示的UI,看了下文件创建时间,竟然过去快3个月了。 这个功能的部分要求如下: 出现的方式由小到大,消失的方式由大到小,center不变。支持短文案、长文案提示。只有文案提示的情况下,定时自动消失,hideOnTimer。支持纯loading、文案和loading结合。展示loading菊花的情况下,由调用方根据条件,显式地调用hide方法。 部分效果如下:   出现...
阅读(5919) 评论(1)

iOS中注册功能的体验探究

通常,移动App的注册功能通常采用手机号码注册或者邮箱帐号注册。 不过在国内这样隐私堪忧的环境下,需要手机号来注册会流失不少用户。即便是新浪微博这样的应用,需要绑定手机号也令我不信任。除非是像淘宝、支付宝这样需要手机号来提高安全等级的服务,才能弱化用户的心理障碍。 首先,看下手机号码注册。    (注册湖畔) 对于手机号码输入框,我们当然要默认使用UIKeyboardTypeNumberP...
阅读(21140) 评论(26)

iOS中登录功能的体验探究

登录功能是我在湖畔做的第一个需求。 当时PD给我的草图和下图类似: (图片来自知乎iOS客户端登录界面)  不过需求中要求用户名或者密码错误时,输入框要抖动(类似Mac登录密码错误的抖动效果)。 如果实现上图的UI布局,那么输入框抖动是上下单元格独立抖动还是整体抖动? 独立抖动:会出现上下单元格边界不齐的断裂效果,破坏美感。整体抖动:只是用户名错误,密码框为什...
阅读(15017) 评论(12)

Objective-C新特性

基于Xcode4.4(不完全独有)。 1. 成员方法无需前置声明 之前,我们调用一个定义在后面(未声明)的成员方法,比如[self callSomeMethod],会得到警告说没有找到该函数。 通常,这种情况下,为了消除这个警告,我们会很郁闷地(为了代码整洁)跑到前面声明下,使用旧版本Xcode往往还要临时写一个匿名扩展(新版本Xcode自动生成);或者(无所谓地)直接把后面的函数定...
阅读(3413) 评论(8)

GCD小结

0. Brief Introduction      GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制。它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务。      GCD中的FIFO队列称为dispatch queue,它可以保证先进来的任务先得到执行(但不保证一定先执行结束)。      通过与线程池的配合,disp...
阅读(12354) 评论(5)
    个人资料
    • 访问:1585326次
    • 积分:14685
    • 等级:
    • 排名:第787名
    • 原创:195篇
    • 转载:9篇
    • 译文:2篇
    • 评论:869条
    博客专栏
    文章分类
    最新评论