UIAccelerometer和UIScrollView

时间:2010-08-13 05:09:55

标签: uiscrollview uiaccelerometer

我想根据UIAccelerometer值滚动滚动视图。实现这一目标的最佳方法是什么?

最初我将内容偏移量设置为基于我得到的加速度计值的值。然后在每个scrollViewDidEndAnimating上,我再次根据加速器值设置内容偏移量。我知道setContentOffset实际上以均匀的速度滚动滚动视图而没有任何加速度。然而,在滚动滚动视图时,这种机制似乎非常不稳定。

任何想法都将受到赞赏。

谢谢和问候

1 个答案:

答案 0 :(得分:3)

我做过一次。 sv是滚动视图。

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    if (sv.tracking || sv.decelerating) return;
    CGPoint pt = sv.contentOffset;
    pt.x += acceleration.x * 2;
    pt.y -= acceleration.y * 2;
    if (pt.x < 0) pt.x = 0;
    if (pt.x > sv.contentSize.width - sv.frame.size.width) pt.x = sv.contentSize.width - sv.frame.size.width;
    if (pt.y < 0) pt.y = 0;
    if (pt.y > sv.contentSize.height - sv.frame.size.height) pt.y = sv.contentSize.height - sv.frame.size.height;
    sv.contentOffset = pt;
}