Ios UIPickerView在两行之间卡住了?

Ios UIPickerView在两行之间卡住了?,ios,cocoa-touch,uipickerview,Ios,Cocoa Touch,Uipickerview,我注意到在使用UIPickerView时出现了一个问题,我想知道以前是否有人遇到过这个问题:有时滚动其中一个轮子时,它会卡在两行之间(触摸结束后),并且会无限期地保持这种状态。再次轻轻拖动方向盘并释放方向盘总是可以解决问题,但不管怎样,我还是不明白为什么会发生这种情况。它发生在模拟器和实际设备上进行测试时 问题不在于当车轮卡住时必须重新调整车轮,而在于当车轮非常接近选择一行(但实际上没有选择)时,有时车轮会卡住,这会给用户留下他们选择了给定行的印象,而实际上他们没有选择 这是否发生在其他人身上,

我注意到在使用UIPickerView时出现了一个问题,我想知道以前是否有人遇到过这个问题:有时滚动其中一个轮子时,它会卡在两行之间(触摸结束后),并且会无限期地保持这种状态。再次轻轻拖动方向盘并释放方向盘总是可以解决问题,但不管怎样,我还是不明白为什么会发生这种情况。它发生在模拟器和实际设备上进行测试时

问题不在于当车轮卡住时必须重新调整车轮,而在于当车轮非常接近选择一行(但实际上没有选择)时,有时车轮会卡住,这会给用户留下他们选择了给定行的印象,而实际上他们没有选择

这是否发生在其他人身上,如果是,有没有办法解决

谢谢


克里斯,我想我已经明白了。加载正在使用UIPickerView的视图时,需要设置pickers委托,如下所示:

picker.delegate = self;

这将解决问题,并使选择器自动以值为中心,而不是在行之间浮动。

仍然没有找到解决此问题的好方法。。。我能想到的最佳解决方案是在
pickerView:didSelectRow:incomonent:
方法中包含以下行:

[pickerView selectRow:[pickerView selectedRowInComponent:0] inComponent:0 animated:YES];

这将使指定的组件回滚到正确的行上,确保用户始终看到所选内容的准确表示,但是当您认为组件将停止在某一行上时,它有时看起来很奇怪,只看到它在停止前以相反的方向向后移动。

我遇到了一个与此类似的问题。UIPickerView将在行之间滚动并停止。通常,此视图不会在行之间停止,即使您尝试在两个项目之间停止,它也会滚动到下一行。我有许多应用程序没有显示问题,即使它们使用相同的代码实例化UIPickerView

经过多次调查,我发现我的问题是CPU的过度使用。我的应用程序是一个OpenGL游戏,所以我有一个尽可能快的游戏循环来更新帧。诚然,我的游戏受到CPU的限制,没有达到完整的帧速率。我让游戏在后台运行,这时pickerView弹出,允许用户进行选择。这似乎没有给UIPickerView留下CPU来检测它已在行之间停止并将自己拉到最近的行

我的简单解决方案是在拾取视图打开时暂停游戏


我知道这个答案已经晚了一年,但我花了一段时间才弄明白,所以希望它能帮助别人

您应该在pickerview委托方法(pickerview:viewForRow:forComponent:reusingView:)中检查子视图的框架。帧高度不应超过内容视图的高度。

这里也有同样的问题。我不明白为什么它一直这样做。我最近在某些项目中看到了这一点。你有没有想过。面对同样的问题,但这是随机的,只发生过几次。这是一个评论,不是答案。