2

UIAccelerometer の値に基づいてスクロールビューをスクロールしたい。これを達成するための最良の方法は何ですか?

最初に、コンテンツ オフセットを、取得した加速度計の値に基づいた値に設定します。次に、各scrollViewDidEndAnimatingで、加速度計の値に基づいてコンテンツ オフセットを再度設定します。setContentOffset実際にスクロールビューを加速せずに均一な速度でスクロールすることを理解しています。ただし、このメカニズムは、スクロールビューをスクロールする際に非常にぎくしゃくしているようです。

どんなアイデアでも大歓迎です。

感謝と敬意

4

1 に答える 1

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;
}
于 2010-08-13T05:16:07.763 に答える