Cocoa touch iOS上OpenFeint滚动视图中的触摸问题

Cocoa touch iOS上OpenFeint滚动视图中的触摸问题,cocoa-touch,ios,uiscrollview,openfeint,Cocoa Touch,Ios,Uiscrollview,Openfeint,我一直在到处寻找和询问,到目前为止都没有结果。我有一个游戏,我把OpenFeint放进其中,我对OpenFeint的仪表板中的滚动视图有问题。排行榜和成就(以及其他目前不相关的)都有滚动视图,在每一个排行榜和成就中,都可以滚动,但似乎永远不会获得任何触动结束的事件。当你放手时,内容只会停留在原来的位置,即使它在视图之外,也不会反弹回来。当你再次触摸时,它会立即跳回,并再次滚动 但是,由此造成的更大问题是,您通常无法在滚动视图中选择任何内容(我猜它们是通过触摸结束事件选择的)。我可以用两个手指和大

我一直在到处寻找和询问,到目前为止都没有结果。我有一个游戏,我把OpenFeint放进其中,我对OpenFeint的仪表板中的滚动视图有问题。排行榜和成就(以及其他目前不相关的)都有滚动视图,在每一个排行榜和成就中,都可以滚动,但似乎永远不会获得任何触动结束的事件。当你放手时,内容只会停留在原来的位置,即使它在视图之外,也不会反弹回来。当你再次触摸时,它会立即跳回,并再次滚动

但是,由此造成的更大问题是,您通常无法在滚动视图中选择任何内容(我猜它们是通过触摸结束事件选择的)。我可以用两个手指和大量敲击来选择东西,但实际上它不起作用。我知道这是我的应用程序的错误,因为它在示例应用程序中运行良好

相关细节:应用程序使用SDL(Git快照从1.3开始,我必须编译自己,并且可以提供任何相关的源),OpenGL,几乎完全是C++。我正在使用OpenFeint 2.10(最新)、XCode 4.0.2(最新)和iOS 4.3.2(在模拟器中;在我的实际设备上使用稍旧的版本)。我想我做到了,所以当仪表盘的面板打开时,游戏没有检查事件,以防出现问题,但要么我失败了,要么没有效果

以下是模拟器中卡住的滚动视图的屏幕截图:

(来源:)

如果其他人有此问题,此链接基本上为我解决了此问题:

到目前为止,它还没有解决滚动问题,但它确实解决了选择问题,这是主要问题。另一个问题也许可以通过一些修改来解决。

虽然是为了将Cocos2D与Openfeint集成,但它解决了一个类似的问题,即Openfeint仪表板的输入出现混乱:

请特别注意Dashboard显示和Dashboard消失方法。你会 请注意,我们暂时暂停Cocos2D控制器,然后在启动后重新启用它 仪表板消失。这是一个关键步骤,否则输入可能会 显示仪表板时,可能会出现不一致甚至无法捕获的情况。但是通过暂停 主任,我们确保所有用户输入都被仪表板捕获

我不知道SDL是否有类似的“暂停”功能,但以类似的方式调用它可能会解决您的问题

下面是该示例中的相关代码:

- (void)dashboardDidAppear
   {
    [[Director sharedDirector] pause];
    [[Director sharedDirector] stopAnimation];
   }
- (void)dashboardDidDisappear
   {
    [[Director sharedDirector] resume];
    [[Director sharedDirector] startAnimation];
   }

嗯,SDL的工作方式不同;您可以使用SDL创建自己的事件循环,它只在您要求时对事件执行任何操作。但是,由于Cocoa的工作方式,整个应用程序都在一个事件中运行,因此除非调用CFRunLoopRunInMode函数(请求事件时SDL会调用),否则无法处理其他事件。这有点让人困惑。无论如何,我不认为这有什么帮助,但我很感谢你的回应。啊,那么这种解决方案就行不通了。如果你解决了这个问题,请发回这里。