3

アプリが横向きの場合、UIPickerView / UIDatePickerView の高さを 162 に変更しようとしています。コードの自動レイアウトでこれを行う簡単な方法はありますか?

現在、サイズ変更を処理する次の方法を試しています。

- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                                      duration:(NSTimeInterval)duration
{
    NSInteger height = 216;
    if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
        height = 162;
    }

    datePicker.bounds =
        CGRectMake(datePicker.frame.origin.x, datePicker.frame.origin.x,
               datePicker.frame.size.width, height);
}

しかし、このコードを横向きで実行すると、ピッカーが画面の左下にバインドされなくなり、次のような効果が得られます (これは、その下に表示される白い余白です)。

ここに画像の説明を入力

UIPickerViews でこのサイズ変更を処理する方法または自動レイアウトはありますか、またはビュー コントローラーのビュー回転メソッドのいずれかで外接する四角形をいじる必要がありますか?

4

2 に答える 2

1

自動レイアウトを使用している場合:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
        self.dateHeightConstraint.constant = 216;
    } else {
        self.dateHeightConstraint.constant = 162;
    }
}

Autolayout を使用していない場合は、このメソッドでフレームの高さを162またはに設定します。216

于 2014-08-06T06:45:20.730 に答える