UIScrollView contentOffset CoreMotion Bug

时间:2012-09-28 14:00:58

标签: objective-c ios xcode

当我尝试使用CoreMotion移动UIScrollView的内容时遇到问题。

问题是,我有一个大约5000px的背景,在容器内,它在我的scrollView(是一个风景应用程序)内;我已设置self.scrollView.bounces = FALSE;,我的动作值为attitude.pitch * 10.0;,当我移动内容并且它到达pointZeroself.scrollView.contentSize.width的边缘时,它不会尊重界限并继续在白色屏幕上移动,就像它没有限制一样。

所以,我设置了一个验证(下面的代码),但当它到达pointZero它应该停止但仍然给我一个小的白色边框。我设置了一个NSLog,我看到contentOffset仍在进行x =-14,就像弹跳是活跃的一样。音高值控制是因为当音高值为零时,内容保持在pointZero,当我提高音高值时,直到-14。

我认为我的验证有问题,如果有人可以提供帮助,我将非常感激!!

self.accel = attitude.pitch *10.0;

//"pointZERO"----------------

if (self.gameArea.contentOffset.x <= self.gameArea.frame.origin.x) {
    NSLog(@"%2.f",self.gameArea.contentOffset.x);
    self.gameArea.contentOffset = CGPointZero;
 } else {
    self.gameArea.contentOffset = CGPointMake(self.gameArea.contentOffset.x + self.accel,0.0);
}

 //"END OF SCREEN"------------------------

if (self.gameArea.contentOffset.x + self.gameArea.frame.size.width >= self.gameArea.contentSize.width) {
    NSLog(@"%2.f",self.gameArea.contentOffset.x);
    self.gameArea.contentOffset = CGPointMake(self.gameArea.contentSize.width - self.gameArea.frame.size.width  ,0.0);
 } else {
    self.gameArea.contentOffset = CGPointMake(self.gameArea.contentOffset.x + self.accel,0.0);
 }

0 个答案:

没有答案