在我的应用程序中,我可以选择让用户向上平移以调整控件,但是当它们非常快速地平移时它会有点慢,我想跳得更多。
// If user is panning upwards or downwards, adjust WPM every 8 translations in either direction
if (translation.y<-8 || translation.y>8) {
// Reset translation so we can see when it exceeds 8 again
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
// Figure out direction, if pan down, decrease by 5, if up, increase by 5
int sign = (translation.y > 0) ? -1 : 1;
WPM = @([WPM intValue] + (sign * 5));
if ([WPM intValue] >= 200 && [WPM intValue] <= 1500) {
self.WPMLabel.text = [WPM stringValue];
self.wordsPerMinute = WPM;
[[NSUserDefaults standardUserDefaults] setObject:WPM forKey:@"WPM"];
}
}
我如何更改此项以解决更快的加速问题?
答案 0 :(得分:1)
速度涉及时间。因此,每次运行代码时,都需要在事件的timestamp
中保存实例变量。这样,代码运行的 next 时间,您可以比较翻译更改和上次更改所用的时间。
我要做的是尝试在阵列中保存三到四次以及三到四个以前的位置,以便您可以采用移动平均线并抑制速度变化。
答案 1 :(得分:1)