关闭

在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...
阅读(21984) 评论(3)

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

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

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

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

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

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

autorelease探究

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

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

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

iOS中注册功能的体验探究

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

iOS中登录功能的体验探究

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

Objective-C新特性

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

GCD小结

0. Brief Introduction      GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制。它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务。      GCD中的FIFO队列称为dispatch queue,它可以保证先进来的任务先得到执行(但不保证一定先执行结束)。      通过与线程池的配合,disp...
阅读(12439) 评论(5)

在iPhone上执行后台任务

当App进入到后台时,可以有一段时间做处理工作。 或者,对于某些服务,可以长时间运行,比如播放音乐。 对于长时间运行的任务,需要在Info.plist添加一行,键为UIBackgroundModes,值为一个数组,可以包含如下几个字符串: audiolocationvoipnewsstand-contentexternal-accessorybluetooth-central...
阅读(5572) 评论(0)

ARC小结

1. Ownership Qualifiers __strong -- 不使用任何修饰符的情况下,默认是__strong。在ARC环境下,编译器会自动为__strong修饰的对象指针生成恰当的release代码,比如出了对象所属作用域,或者发生指针赋值时。__weak -- 使用__weak修饰符,编译器(准确说是Runtime System)会记录被修饰的指针,当指向对象被释放时,...
阅读(6635) 评论(4)

在iOS地图上绘制两点间路线

当我们获取了一组地理位置后,可能会想要在地图上绘制这组地理位置信息所包含的路线。 MKMapView提供了addOverlay功能(以及addAnnotation),让我们可以在地图上放一层遮罩。如果要放一组遮罩,可以用addOverlays。 #pragma mark - - (void)drawLineWithLocationArray:(NSArray *)locationArr...
阅读(12654) 评论(7)

iOS中block实现的探究

[0. Brief introduction of block] Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C语言的扩展,用来实现匿名函数的特性。 用维基百科的话来说,Block是Apple Inc.为C、C++以及Objective-C添加的特性,使得这些语言可以用类lambda表达式的语法来创建闭包。 用Apple文档的话来说,A block is an ano...
阅读(89971) 评论(29)

使用UIScrollView和UIPageControl实现一个简单的图片浏览功能

由于稍微累了,就直接贴粗糙实现的代码了(没有做一些边界检查等),算是backup。 // // CCImageScrollView.h // CCImageScrollView // // Created by Jason Lee on 12-6-13. // Copyright (c) 2012年 _XXX_. All rights reserved. // #import...
阅读(7129) 评论(0)
206条 共14页首页 上一页 ... 6 7 8 9 10 ... 下一页 尾页
    个人资料
    • 访问:1578352次
    • 积分:14866
    • 等级:
    • 排名:第818名
    • 原创:195篇
    • 转载:9篇
    • 译文:2篇
    • 评论:871条
    博客专栏
    文章分类
    最新评论