iPhone 横向模式返回不正确的视图大小
Posted
技术标签:
【中文标题】iPhone 横向模式返回不正确的视图大小【英文标题】:iPhone Landscape Mode returns incorrect view sizes 【发布时间】:2010-09-16 14:22:15 【问题描述】:在横向模式下获取视图的边界矩形会返回错误的大小:
(我知道有很多关于横向模式的帖子,但没有关于这个问题。)
从一个新的 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】:听起来像是与状态栏相关的问题。那就是说我没有给你一个好的解决方案。
除了看frame,还可以看bounds。有时这会提供更好的信息。
【讨论】:
感谢您的回复。事实证明我在主视图控制器上有“自动调整子视图”。听起来很明显,但由于没有调整大小,我不知道为什么这会有所不同,但它已经解决了。以上是关于iPhone 横向模式返回不正确的视图大小的主要内容,如果未能解决你的问题,请参考以下文章