使用UIScrollView控制器与iPhone 4和iOS 5.1相结合时,我遇到了一个奇怪的问题。
我有一个UIScrollView,内容尺寸为640x480(实际上是双屏),除了可以通过滑动在两个“屏幕”之间切换外,我还允许用户点击屏幕。响应点击后,我会调用类似以下的东西...
[scrollView scrollRectToVisible:(CGRectMake 320,0,320,480) animated:YES];
如果在滚动视图的右侧显示时发生了轻拍(请注意,滚动视图启用了分页功能,因此只能完全左侧或完全右侧停止),则前320个值将为0。
我还遇到一种情况,即有时使用presentModalViewController在包含滚动视图的此视图控制器上额外显示一个视图控制器。
一切都很完美,直到呈现模态视图控制器并在其后被解除呈现,之后scrollRectToVisible方法将不再起作用(如果将animated设置为YES,则不起作用;如果将其更改为NO,则按预期工作)。请注意,仍然正在注册轻拍并调用scrollRectToVisible,但当animated设置为YES时,它不执行任何操作。
问题是这个漏洞仅会在运行iOS 5.x的iPhone 4上出现。
在我的以下设备上,即使在显示模态视图控制器之后,也可以完美地工作:
运行4.x的iPhone 3G,
运行3.x的iPhone 3GS,
运行4.x的iPod touch(第二代)
以及最让人惊讶的是运行5.x的模拟器。
我想知道是否这是动画系统中的一个错误,所以在模态视图控制器演示和解除演示时禁用了动画,但这没有效果,在运行iOS 5.1的iPhone 4上仍然出现问题。
有人有任何想法是什么导致了这个问题,以及我如何解决它吗?