iPhone横向模式返回不正确的视图大小

时间:2010-09-16 14:22:15

标签: iphone orientation landscape

在横向模式下获取视图的边界矩形会返回错误的大小:

(我知道在横向模式上有很多帖子,但没有关于这个问题。)

从一个新的UIView模板项目开始,我将一个UIView添加到Interface Builder中的ViewController(在横向模式下),并将视图大小设置为width = 400,height = 200; 但是当我在ViewController中添加断点时 码: - (void)viewDidAppear:(BOOL)animated {  CGRect viewRect = [testView bounds]; } 尺寸是w = 220,h = 380! (即使屏幕上的视图清晰正确)

在myViewController.m中我设置了:

- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
 return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); // home button on right
}

在myAppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
 application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;  //home on right
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];
    return YES;
}

并在我设置的info.plist中:初始界面方向=横向(右主页按钮)

试图用iPhone旋转视图,它只能在横向修复。

有解决方法吗?我需要根据正确的视图大小创建一些CALayers。

由于

史蒂夫

1 个答案:

答案 0 :(得分:1)

听起来像状态栏相关的问题。那说我没有一个很好的解决方案。

除了查看框架外,您还可以查看边界。有时这会提供更好的信息。