2013-01-07 59 views
0

在我的應用程序中,我向用戶展示了底部有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的解決方案嗎?

回答

1

自轉機構在IOS 6. 已經改變從iOS 6.0 Release Notes

的willRotateToInterfaceOrientation:持續時間:, willAnimateRotationToInterfaceOrientation:持續時間:和 didRotateFromInterfaceOrientation:方法不再稱爲任何 視圖控制器上,使一個全屏的演示文稿 - 示例,presentViewController:animated:completion :.您應該確定 確信您的應用沒有使用這些方法來管理任何子視圖的佈局 。相反,他們應該使用視圖控制器的viewWillLayoutSubviews方法,並使用視圖的邊界矩形 調整佈局。

我認爲你應該實現iOS 5特定的方法使其工作。

+0

現在,我發佈的代碼是在一個函數調用resizeDatePicker。該函數由willRotateToInterfaceOrientation和shouldAutorotateToInterfaceOrientation調用。這樣,我的功能就是在iOS5和iOS6中調用。如果可能的話,我想避免爲每個版本的iOS製作不同的大小調整功能。是嗎? – NLemay

相關問題