2010-08-13 91 views
2

我想滚动基于UIAccelerometer值的滚动视图。什么是完成这个最好的方法?UIAccelerometer和UIScrollView

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

任何想法将不胜感激。

谢谢,并问候

回答

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; 
} 
+0

非常感谢你..你救了我的一天......这是我寻找的解决方案 – Mahadevan 2010-08-13 06:09:33