前些天,一个以前的同事面试受挫,其中一条就挫死在内存上。 别的我不想多说,基础真的很重要,大家再来回顾一下C编译运行的内存机制。 …
Blocks处理view及其子类的touch事件
前段时间粗略看了下块对象(blocks),详细内容请参见另外一篇块对象。 总之觉得blocks在一些情况下很好用,机动性很好,所以又写了个Blocks处理view及其子类的touch事件的Demo。 如图: 也没什么特殊功能,还就是单双并击,以前提过,详见基本手势,只是用block实现。所以不在文章中罗列代码了。 已经写成UIView的类别,可以直接使用。详见附件。 …
关于块对象
关于块对象(block),以前大都用来代替Delegate来完成一些事情。所以,一直没怎么注意。 但是最近发现确实很有用,所以写个Demo,发上来,大家共鉴。 …
基本手势
长久以来一直都依靠touchesXx方法来定制手势,所以忽略了许多程序自定义的手势。今天回头重来,重新关注下,iOS SDK自带的好东西。 …
利用类别(Category)为对象添加“实例变量”
类别(Category)是Objective-C比较常用的一个特性。常常用来扩展一功能类、将不同的功能分属不同的文件、以及为现场的类添加新的方法和功能,甚至有的时候我们也会用以重装某些方法来实现多态或满足其他需求(不提倡,原因暂不予讨论)。但是,我们只能添加方法,却不能通过类别给已经存在的类添加新的成员变量。因此,每有变量增需,一般都是采用继承。 但是如果确有添加有限个成员变量却不想再产生一个子类,通过类别倒是也能实现,这需要利用ObjectiveC的C API中函数: void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy) id objc_getAssociatedObject(id object, const void *key) 详细参见官方的 ObjectiveC Runtime Reference。 废话到此结束,现在写怎么做(以给UIView添加一个string成员作为名字为例): …
Tap spark
简单的小demo, 有一定的用处. 用于反馈用户的touch事件, 以告知用户操作有效(近来越来越觉得, 用户体验很重要)。 基本思路,创建UIImageView子类,添加+ (id)handTraceWithPostion:(CGPoint)pos inView:(UIView *)inView type:(int)type方法。 …