如何处理单点touch

单点touch 基本上和各种编程里鼠标事件得处理差不多。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

- (void) touchesEnd: (NSSet *) touches withEvent:(UIEvent *) event
搞定这三个类似mousedown,mousemove,mouseup得东西就可以了。
可以通过如下示例代码操作:
UITouch *touch= [[event allTouches] anyObject];
…你的代码
如何处理多点touch(Multitouch)
还是处理上面几个事件。在每一个事件里,可以通过如下示例代码操作
NSSet *allTouches = [event allTouches];
if ([allTouches count]==2){
    UITouch *touch1 = [[allTouches allObjects] objectAtIndex:0];
    UITouch *touch2 = [[allTouches allObjects] objectAtIndex:1];
    …你的代码
}
其中allTouches得count属性表示当前按下了几个触点,这里以最常用得两个触点为例,实际上理论上n个触点都可以,只要你手指头摆得下。
代码里有一行,NSSet *allTouches = [event allTouches]; 我们通过他获取到当前所有触点得信息,但是我们注意到touch事件里得第一个参数touches,他们有什么区别呢。当一个手指头不动得时候,只动另一个指头,这时,通过event allTouches可以获得所有得触点,而事件参数里得touches只能获得当前活动得那个触点信息。
(iu1u.com原创,欢迎转载,恳请注明来源)
怎么处理类似双击得操作
双击操作也是用的比较多得操作,可以通过touch对象得tapCount属性获取tap得次数,([touch tapCount]==2),就表示按了两下。
Over!
Posted in iphone开发 at 03月 5th, 2009. 1 Comment.

介绍一点点object c的基本语法:

都说object c的语法是比较火星的,不掌握几个基本语法,一个hello world就可以把人看晕掉。偶就晕过的说。
掌握了这几个,看hello world应该绰绰有余了.

- (void) functionname… 表示对象的方法名

+ (void) functionname…表示类方法名,或者说静态方法名,类似与java中的static
没见过的Cocoa类,可以到http://developer.apple.com/documentation/Cocoa 查询,对于初学者,知根知底的查一下一个类的家底是很好的积累。
多个参数的调用方法比较火星一点:

-(void) setKids: (NSString *)myOldestKidName secondKid: (NSString *) mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName;

具体可以参考CocoaChina的这篇文章 http://www.cocoachina.com/index.php/archives/cocoachina_122.html

 

Posted in iphone开发 at 12月 28th, 2008. No Comments.

参考:31Day的Day1: http://i.cniphone.com/space-7-do-blog-id-112.html
今天开始写iphone程序,看的31天iphone开发实例。第一个程序调通了。两个体会:

* 不要看中文版的,原版的表达很浅显,不需要多好的英语功底,中文版的反而词不达意,影响理解。不过原网站:appsamuck.com貌似被河蟹了(国内用户可以在这里查看:http://i.cniphone.com/space-7-do-blog-view-me.html
* 学会了NSTimer的用法,使用NSTimer时,那一堆参数必须全了,才好使,否则可能提示NSTimer may not respond to …
* 把倒计时改成了时钟,嘿嘿
第一天,继续加油

Posted in iphone开发 at 12月 28th, 2008. No Comments.