当触摸移动时,系统会调用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/

10-12 16:35