私はナビゲーション ベースのアプリを持っており、ルート コントローラー A によって viewController B がプッシュされると言います。これには、UITextFields を持ついくつかのセルを持つ UITableView があります。
最初の 2 つの UITextField には、inputView として、それぞれ UIDatePicker と UIPickerView があります。また、UIPickerView には、UIView が返される 4 つのコンポーネントがあります。
- (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 のコンポーネントがめちゃくちゃになります。
何かご意見は?