Objective c iOS5&;中模式底部的UIDatePicker;损失6

Objective c iOS5&;中模式底部的UIDatePicker;损失6,objective-c,ios5,ios6,uidatepicker,Objective C,Ios5,Ios6,Uidatepicker,在我的应用程序中,我向我的用户显示一个底部带有UIDatePicker的模式,以便他们可以选择日期。我的莫代尔必须在肖像画和风景画中工作。此外,我的日期选择器必须在横向上比纵向上小,否则几乎占据整个屏幕。当屏幕旋转时,我使用以下代码 if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) { datePicker.frame = CGRectMake(datePicker.frame.origin.x, myVi

在我的应用程序中,我向我的用户显示一个底部带有UIDatePicker的模式,以便他们可以选择日期。我的莫代尔必须在肖像画和风景画中工作。此外,我的日期选择器必须在横向上比纵向上小,否则几乎占据整个屏幕。当屏幕旋转时,我使用以下代码

    if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
    datePicker.frame = CGRectMake(datePicker.frame.origin.x, myView.frame.size.width - 216.0, datePicker.frame.size.width, 216);
}
else {
    datePicker.frame = CGRectMake(datePicker.frame.origin.x, myView.frame.size.height - 160.0, datePicker.frame.size.width, 160);
}    
它在iOS6上确实工作得很好:日期选择器总是在我想要的地方。但是在IOS5中,同一个数据放在屏幕中间的肖像模式,而在屏幕模式下的屏幕上。
您知道在iOS 5和iOS 6上运行的解决方案吗?

iOS 6中的自动旋转机制已更改。 发件人:

willRotateToInterfaceOrientation:持续时间:, WillAnimateRotationInterfaceOrientation:持续时间:,和 didRotateFromInterfaceOrientation:不再对任何对象调用方法 视图控制器,在其自身上为 例如,presentViewController:已设置动画:完成:。你应该 确保您的应用程序未使用这些方法来管理布局 任何子视图的。相反,它们应该使用视图控制器的 viewWillLayoutSubviews方法并使用视图的 边框


我认为您应该实现iOS 5特定的方法以使其工作。

目前,我发布的代码位于函数调用resizeDatePicker中。此函数由willRotateToInterfaceOrientation和shouldAutorotateToInterfaceOrientation调用。这样,我的函数就是在iOS5和iOS6中调用的。如果可能的话,我希望避免对每个版本的iOS使用不同的大小调整功能。它是?