UIDatePicker在iOS5和iOS6模式底部

问题描述:

在我的应用程序中,我向用户展示了底部有UIDatePicker的模式,以便他们可以选择日期。我的模态必须在纵向和横向上工作。此外,我的DAtePicker必须比肖像更小,或者几乎需要所有的屏幕。当屏幕旋转时,我正在使用下面的代码。UIDatePicker在iOS5和iOS6模式底部

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上工作得很好:DatePicker总是在我想要的地方。但是在iOS5中,相同的DatePicker在纵向模式下处于屏幕中间,而在横向模式下处于屏幕外。

你知道一个适用于iOS 5和iOS 6的解决方案吗?

自转机构在IOS 6. 已经改变从iOS 6.0 Release Notes

的willRotateToInterfaceOrientation:持续时间:, willAnimateRotationToInterfaceOrientation:持续时间:和 didRotateFromInterfaceOrientation:方法不再称为任何 视图控制器上,使一个全屏的演示文稿 - 示例,presentViewController:animated:completion :.您应该确定 确信您的应用没有使用这些方法来管理任何子视图的布局 。相反,他们应该使用视图控制器的viewWillLayoutSubviews方法,并使用视图的边界矩形 调整布局。

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

+0

现在,我发布的代码是在一个函数调用resizeDatePicker。该函数由willRotateToInterfaceOrientation和shouldAutorotateToInterfaceOrientation调用。这样,我的功能就是在iOS5和iOS6中调用。如果可能的话,我想避免为每个版本的iOS制作不同的大小调整功能。是吗? – NLemay