0
的方向我有兩個的viewController,A和B.問題有關的UIView
我想,這個應用就是風景,所以在A和BI覆蓋
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
有兩種方式INIT B,和添加B的視圖的
1.
一個子視圖在甲的viewDidLoad,我通過init方法得到B的對象。
B *bController = [[B alloc] init];
b.view.backgroundColor = [UIColor redColor];
[self.view addSubview:b.view];
2.
在甲的viewDidLoad,我打通initWithNib方法B的對象。 在B的Nib文件中。我將視圖的方向更改爲LandScape,並將視圖的大小更改爲(480,300)
當我在B的viewDidLoad方法中輸出B的視圖的框架時,我得到了不同的結果。
「方法1」的輸出是(320,460),儘管該設備被旋轉到橫向並且視圖充滿了屏幕。
「方法2」的輸出是(480,300)。這僅僅是我的期望。
爲什麼method1的輸出不是(480,300)而是(320,460)?
謝謝!
爲什麼不直接將項目的支持方向設置爲橫向?在Xcode 4中點擊項目文件,轉到摘要,然後查看支持的設備方向。點擊肖像模式以禁用它們。 – hundreth
您應該只有一個視圖控制器負責整個視圖層次結構。換句話說,您不應該將B的視圖添加爲A視圖的子視圖。像UINavigationController這樣的容器控制器是一個明顯的例外,但那些控制器沒有自己的視圖。 – Caleb