有这个问题已经有几个问题,但没有一个满意的答案。我想知道为什么框架和边界看起来是错误的,使用最简单的可能的例子,并且有人告诉我什么是正确的方法来处理它...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