我會建議做你說的第一句話,你不會做:
我想使用人像/風景模式的具體廈門國際銀行文件,而不是 處的對象使用不同的代碼
我花大量的時間量好嘗試使用不同的取向不同的廈門國際銀行,但這裏的交易:
1)如果在人像有一個的UITextField,當你旋轉爲橫向,你哈例如,要確保縱向模式中的文本在橫向上相同。你必須爲每個對象都這樣做。 2)即使你不指望1)我永遠無法成功地實現兩個xibs解決方案。我不是說你不能這樣做,我只是從我的經驗中說,我無法做到這一點。
所以,如果你至少覺得做1級廈門國際銀行的解決方案,我可以解釋一下:
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)orientation{
}
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
NSLog(@"My view will rotate");
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
[self viewsPositionPortrait];
} else if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)){
[self viewsPositionLandScape];
}
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
NSLog(@"Register should rotate");
return YES;
}
-(void)viewsPositionPortrait{
//創建你的「oneOfmyViews」爲縱向旋轉 oneOfMyviews.frame = CGRectMake框架(...,...,...,...); }
-(void)buttonsPositionLandScape{
//創建你的 「oneOfmyViews景觀」 旋轉 框架oneOfMyviews.frame = CGRectMake(...,...,...,...);
}
然後你可以在viewsPosition方法中定義你的視圖的框架。你贏了什麼?
1)清潔代碼。
2)美麗的過渡。
3)輕鬆指定滾動視圖的內容大小。
對於你的UIViews => CustomViewController => UIScrollView的旋轉問題。 你可以這樣做:
1)在你的CustomViewController裏面你的自定義視圖(上面的方法)爲你的UIViews做同樣的事情。
2)在有你的CustomViewControllers你可以做以下的觀點:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
//(everything that i posted above)
[myCustomViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
這樣,你會讓你的customViewController旋轉內UIViews。最後一個提示:禁用autoresize-subviews並從你的UIViews中取出每一個自動大小(因爲你將單獨定義它們的框架)。
雖然這非常有幫助,但我最終在當前應用程序中使用了2個xib文件。我的解決方案問題在於它很難本地化,而本地化xib更容易。我擔心它會造成旋轉不順暢,但看起來完全一樣。 – Niv