考慮下面的應用程序的委託切入點:爲什麼窗口的子視圖最初定位錯誤,但在旋轉後正確重新定位?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
// Custom view controller
main = [[MainView alloc] initWithNibName:@"MainView" bundle:nil];
[self.window addSubview:main.view];
return YES;
}
一切都是蘋果公司的股票代碼,除了「自定義視圖控制器」的一部分。在那裏,一個自定義的視圖控制器被抓取,並有效地添加爲應用程序的主視圖。
問題:視圖中的小部件的位置應高出20px。換句話說,視圖內容的前20像素被狀態欄遮擋。
但是:旋轉後,視圖及其內容被正確定位,並且狀態欄重疊不再出現。
這是怎麼回事?具體來說,當最初將子視圖添加到窗口時,確保事物定位正確的模式/最佳實踐是什麼?
這不完全正確,但它使我到正確的地方。改變self.window座標給了我更多的旋轉後的錯誤,但我通過添加這個來修正所有的問題:'main.view.frame = [[UIScreen mainScreen] applicationFrame];' – Jaanus