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

16

您可以更改 UIPickerView / UIDatePickerView 的高度,但只能更改为以下值:

  • 162
  • 180
  • 216
于 2014-01-13T18:11:28.670 回答
1

如果您使用自动布局:

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

如果您不使用 Autolayout,则在此方法中将框架的高度设置为162216

于 2014-08-06T06:45:20.730 回答