Ipad 在进行大量渲染时,UIPickerView响应缓慢

Ipad 在进行大量渲染时,UIPickerView响应缓慢,ipad,uipickerview,Ipad,Uipickerview,我有一个UIPickerView,它出现在图形视图顶部的UIPopoverController中。当图形视图是静态的(而不是绘制传入数据)时,UIPickerView的响应速度非常快。但是,当我绘制传入数据时,UIPickerView非常没有响应 UIPopoverController内部是my MeasurementViewController(允许用户更改沿其中一个图形轴绘制的测量值)。MeasurementViewController有一个“完成”按钮和一个UIPickerView 奇怪的

我有一个UIPickerView,它出现在图形视图顶部的UIPopoverController中。当图形视图是静态的(而不是绘制传入数据)时,UIPickerView的响应速度非常快。但是,当我绘制传入数据时,UIPickerView非常没有响应

UIPopoverController内部是my MeasurementViewController(允许用户更改沿其中一个图形轴绘制的测量值)。MeasurementViewController有一个“完成”按钮和一个UIPickerView

奇怪的是,我从选择器中的一行中选择了一个组件,然后按“完成”。但是当我记录这些调用时,我看到-doneAction:在MeasurementViewController的-pickerView:didSelectRow:inComponent:调用之前很久就调用了


UIPickerView的响应是否受到其背后视图中(OpenGL ES)渲染的阻碍?

听起来像是这样,是的。您可能希望在打开popover时暂停图形显示(可能会使图形显示本身变暗)。我猜你的
-pickerView:didSelectRow:incomonent:
没有立即被调用的原因是因为picker视图所做的动画减速/对齐操作,它可能在确定一行之前不会调用委托方法,如果它滞后,可能在你点击“完成”按钮后一段时间按钮(对触摸做出即时响应)。

听起来像,是的。您可能希望在打开popover时暂停图形显示(可能会使图形显示本身变暗)。我猜你的
-pickerView:didSelectRow:incomonent:
没有立即被调用的原因是因为picker视图所做的动画减速/对齐操作,它可能在确定一行之前不会调用委托方法,如果它滞后,可能在你点击“完成”按钮后一段时间按钮(对触摸作出即时响应)。

谢谢。我想你是对的。我刚刚在iPhone上检查了我的应用程序(当然,它是iPhone4),但MeasurementViewController被推到导航堆栈上,所以图形不再可见。事实上,它的UIViewController不再处于活动状态。在iPhone上,UIPickerView响应迅速。谢谢。我想你是对的。我刚刚在iPhone上检查了我的应用程序(当然,它是iPhone4),但MeasurementViewController被推到导航堆栈上,所以图形不再可见。事实上,它的UIViewController不再处于活动状态。而在iPhone上,UIPickerView的响应速度非常快。