有這個問題已經有幾個問題,但沒有一個滿意的答案。我想知道爲什麼框架和邊界看起來是錯誤的,使用最簡單的可能的例子,並且有人告訴我什麼是正確的方法來處理它...UIViewController/UIView方向框/界限在風景只有應用程序
我使單一視圖應用程序,沒有故事板,我只勾選景觀支持。然後在didFinishLaunching方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
ViewController *vc = [[ViewController alloc] init];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
return YES;
}
,並在視圖控制器:
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor redColor];
}
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"%.1f,%.1f",self.view.frame.size.width,self.view.frame.size.height);
}
則輸出768.0,1024.0 - 這顯然是錯誤的,即使紅色充滿了景觀尺寸屏幕。所以我不能依靠self.view.frame或self.view.bounds來排列或調整子視圖的大小。
什麼是最新的「適當的」方法來避免這樣的問題? (沒有使用筆尖或故事板,也沒有hacky交換寬度和高度)
試試這個的NSLog(@ 「%@」,self.view);它會給yiu框架 – Purva
它不是nslog的問題,記錄整個視圖對象確認了同樣的問題:> –
jonydep