У меня есть приложение на основе навигации, и я говорю, что мой корневой контроллер A вызывает нажатие viewController B, который имеет UITableView с несколькими ячейками с UITextFields.
Первые 2 UITextFields имеют каждое, в качестве своего inputView, UIDatePicker и UIPickerView, соответственно. Кроме того, UIPickerView имеет 4 компонента, чьи UIViews возвращаются через
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 60, 37)];
label.text = [NSString stringWithFormat:@"%@%i", ((component == 3) ? @"." : @""), row];
label.textAlignment = UITextAlignmentCenter;
label.font = [UIFont boldSystemFontOfSize:24];
label.backgroundColor = [UIColor clearColor];
[label autorelease];
return label;
}
В вертикальной ориентации UIPickerView выглядит следующим образом:
Я заметил следующее:
СЛУЧАЙ 1 - ПРАВИЛЬНО
- Я нахожусь в viewController A в вертикальной ориентации.
- Я поворачиваю устройство / симулятор из вертикальной ориентации в горизонтальную ориентацию
- Я нажимаю viewController B
- Я вызываю всплывающее окно UIPickerView
Рамка подборщика правильно растянута в альбомный режим, а размеры компонентов по-прежнему имеют правильный размер и по центру:
НО
СЛУЧАЙ 2 - НЕПРАВИЛЬНО
- Я нахожусь в viewController A в вертикальной ориентации.
- Я нажимаю viewController B
- Я поворачиваю устройство / симулятор из вертикальной ориентации в горизонтальную ориентацию
- Я вызываю всплывающее окно UIPickerView
В этом случае компоненты UIPickerView перепутались:
Есть мысли?