Reputation: 4985
I have a UIPickerView that appears in a UIPopoverController atop a graph view. When the graph view is static (not graphing incoming data), then the UIPickerView is very responsive. However, when I graphing incoming data, the UIPickerView is very unresponsive.
Inside the UIPopoverController is my MeasurementViewController (which allows user to change measurement being plotted along one of the graph axes). MeasurementViewController has a "Done" button and a UIPickerView.
What is strange is that I select a component from a row in the picker and then press "Done". But when I log these calls, I am seeing -doneAction: called long before MeasurementViewController's -pickerView:didSelectRow:inComponent: is called.
Is the UIPickerView's responsiveness being impeded by the (OpenGL-ES) rendering in the view behind it?
Upvotes: 1
Views: 1230
Reputation: 57139
Sounds like it, yeah. You might want to pause graphing (maybe dimming the graph display itself) while you've got the popover open. I would guess that the reason your -pickerView:didSelectRow:inComponent:
isn't getting called right away is because of the animated deceleration/alignment stuff that the picker view does—it probably doesn't call the delegate method until it's settled on a row, which, if it's lagging, could be a while after you've hit the "Done" button (which responds instantaneously to a touch).
Upvotes: 1