当触摸移动时,系统会调用touchMove。
2个 Action 之间的间隔是多少?
最佳答案
没有固定利率。该信息由硬件中断驱动,并由操作系统处理。如果您编写一个只记录 touchesMoved 事件的应用程序,您可以感受一下——它非常快。
如果您正在尝试绘制,并遇到手指绘制的圆圈出现锯齿状和有角度的问题,那不是触摸移动性能的问题,而是绘图性能的问题。如果这是问题所在,您应该问另一个问题——有几个技巧,主要围绕分离收集触摸数据并将其绘制到单独的线程中。
要查看触摸移动的速度,请创建一个新项目,除此之外什么都不做:
(在网络浏览器中输入的代码。您可能需要稍微调整一下。)
static NSDate *touchReportDate = nil;
static touchMovedCount = 0;
- (void) logTouches
{
NSDate *saveDate = touchReportDate;
int saveCount = touchMovedCount;
touchReportDate = nil;
touchMovedCount = 0;
NSTimeInterval secs = -[saveDate timeIntervalSinceNow];
[saveDate release];
NSLog (@"%d touches in %0.2f seconds (%0.2f t/s)", saveCount, secs, (saveCount / secs));
}
- (void) touchesMoved: (NSSet *touches withEvent: (UIEvent*) event
{
if (touchReportDate == nil)
touchReportDate = [[NSDate date] retain];
if ([touchReportDate timeIntervalSinceNow] < -1) // report every second
{
[self logTouches]
}
}
- (void) touchesEnded: (NSSet *touches) withEvent: (UIEvent*) event
{
[self logTouches];
}
- (void) touchesCancelled: (NSSet *touches) withEvent: (UIEvent*) event
{
[self touchesEnded: touches withEvent: event];
}
关于iphone - Cocoa Touch 的 touchMove 采样率是多少?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2570778/