I am migrating my apps over and on one I use a UIPickerView. In the viewDidLoad method I create the picker and set it\'s y origin to be self.view.frame.si
I've been dealing with the same issue. I tried getting the views frame in - (void)viewDidLoad but discovered that it's not updated until - (void)viewWillAppear:(BOOL)animated gets called.
So try getting the views frame in - (void)viewWillAppear:(BOOL)animated and you should be alright.