2009-09-09 27 views
1

我没有iPhone手机,也不想每个月花130美元买一部手机。 (我大部分时间都会把我的车留在车里,有时甚至整个周末。)但我把这项技术作为一个移动计算平台。 (残酷的命运。)我最喜欢的一件事是多点触控功能。多点触控功能如何看待API? (iPhone/OS X)

从API的角度看起来如何? 操作系统是否具有“手势”,它知道并根据用户所做的事情传递事件,或者是解释“触摸和发布”事件列表所需的应用程序? 它可以读多少点? 2,3 ...无限? 如果您拥有“多点触控”功能的显示器,Mac OS X是否具备此功能?

+3

顺便说一下,你可以得到一个iPod touch,并以更便宜的价格(并且不收取任何费用)进行开发。 – Ray 2009-09-09 01:20:05

+0

OSX/Cocoa不附带SDK和模拟器吗?我知道Palm OS总是那样,所以你可以在没有硬件的情况下测试驱动应用程序。 对不起,对于天真的问题,我不是一个iPerson :) – DVK 2009-09-09 01:25:37

+0

在Mac上运行的免费Xcode有一个iPhone模拟器,但是,没有办法实际使用手指来模拟多点触摸。伪多点触摸输入机制很粗糙。一个手指触摸只是一个鼠标点击。使用选项键和换档键与点击一起完成两个手指触摸。如果触控板在模仿Cocoa Touch触摸机制方面很有用,那将会很不错。 – mahboudz 2009-09-09 05:40:31

回答

3

你总是可以看看the documentation获得的支持有什么更好的主意,但一般的方法来实现的是:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; 

当你点击了下来,的touchesBegan被称为与设定触摸刚刚开始。要检索当前屏幕上的所有触摸,请检索event.allTouches

当手指移动或从屏幕上移除时,会发生类似的明显动作。 touchesCancelled方法主要用于支持UIScrollView,它允许您点击滚动视图内的某些内容,然后拖动滚动视图本身,而不是与子视图交互,如果满足某些条件(滚动视图将触发取消消息发送到子视图开始滚动时)。

没有内置手势可供您观察,但内置手势可供系统处理,例如在表格中划过一行以删除它,然后在UIScrollView上捏缩放。