首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPad/iPod: autoRotate在窗口中调整视图大小

iPad/iPod: autoRotate在窗口中调整视图大小
EN

Stack Overflow用户
提问于 2010-05-27 02:19:59
回答 4查看 1.5K关注 0票数 0

在开发iPad界面时,我有一个场景,其中我有一个UIViewController,它管理一个视图,该视图直接作为主UIWindow的子视图放置。

在放置到UIWindow中之前,该视图的大小调整为非标准大小,比如768x460,并定位在屏幕底部。

旋转设备时,UIViewController的autoRotate功能会调整视图的大小,使其填满整个UIWindow空间。

我认为这可能是因为在XIB中,视图被设置为窗口大小,但当我更改它以反映所需的大小时,它仍然将其扩展到窗口大小。

然后我进入MainWindow XIB并关闭了autoresizeSubviews,它仍然在发生。

这是一个非常令人沮丧的问题,我希望我只是错过了一些明显的东西。

谁有什么好点子?

按请求编码:

代码语言:javascript
复制
browseController = [[BrowseController alloc] initWithNibName:@"BrowseController" bundle:nil];

[[browseController view] setFrame:CGRectMake(0, 544, 768, 460)];

[window addSubview:[browseController view]];
EN

回答 4

Stack Overflow用户

发布于 2010-05-28 21:50:17

如果您在界面构建器中,请在编辑视图时单击size选项卡。在“自动调整大小”下,单击所有红色箭头,使其消失。你不希望那里有任何红色箭头。或者在代码中,您可以执行以下操作:

代码语言:javascript
复制
browseController.autoresizingMask = UIViewAutoresizingNone;
票数 1
EN

Stack Overflow用户

发布于 2010-05-27 11:45:46

那么springs和struts呢?(又名autoresizingMask)参见here。在代码中,您可能需要额外的代码行

代码语言:javascript
复制
[[browseController view] setAutoresizingMask:UIViewAutoresizingNone];
票数 0
EN

Stack Overflow用户

发布于 2011-02-01 03:02:02

你的问题中没有足够的信息,但这通常是问题所在(所以我做了一个有根据的猜测):

苹果公司声明,在根级别的UIWindow中应该只存在一个UIView -如果有多个,那么许多行为都是未定义的。通常会有一个你几周前没有注意到/忘记的额外的东西。

在实践中,我发现当有“不止一个”时,很多这样的旋转bug就会发生,苹果的代码就会变得混乱,并开始随机地重新定位东西。

标准解决方法:

  1. 在您创建的每个应用程序中
  2. ...always都有一个单独的、空的"MyRootViewController“,您可以将其添加到UIWindow
  3. ...then中在其中添加任意数量的视图作为子视图

(因为苹果奇怪的bug只会影响UIWindow本身--所有的子视图都会“按预期”工作)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2915630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档