旋转设备时自动调整根视图

时间:2011-11-25 05:30:12

标签: xcode landscape autoresize

我正在开发PDF阅读器。我在旋转模拟器时遇到问题。我正在做的是,当ViewController加载视图时(即在loadView中),我创建的UIScrollView包含UIImageViewUIView相同大小(即PDF页面的大小)。它在肖像模式下完美运行。但是当我在横向模式下旋转模拟器时,视图不会根据设备自动调整。我试过了

self.view.autoresizesSubviews = YES;
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

在ViewController的viewDidLoad()

但它不起作用。我很困惑以上两个属性如何工作。我想这些属性会将UIScrollView自动调整为我正在加载UIScrollView的根视图的大小。但是应该怎样做来自动化加载UIScrollView的主视图?

2 个答案:

答案 0 :(得分:0)

这是迟到的回复......如果你还没有修复它可能会有所帮助。

在portraid模式下创建任何应用程序时,如果要将其旋转(调整大小)为横向模式,则应在User Interface Builder或.xib(或Storyboard iPad或iPhone)文件中执行此操作。

所以检查或检查模拟器中的旋转:

  1. 转到“USER INTERFACE BUILDER”或“.XIB”(或“Storyboard iPad或iPhone”)文件。

  2. 然后选择“UIImageView”并转到“显示属性检查员”。

  3. 在第四个选项卡(Attributes Inspector)中将模式设置为“Aspect Fit”,并在第三个选项卡(Size Inspector)和第五个选项卡(Size Inspector)中将自动调整大小属性设置为以下值: / p>

  4. 将箭头设置为所有方向。抱歉无法加载图片。

    1. 对“UIView”(3)做同样的事。

    2. 在继续之前,您可以通过选择详细视图控制器并将方向从纵向更改为横向来仔细检查您是否已获得所有自动调整属性:对不起暂时无法加载图像...

    3. 您可以在右侧“模拟指标”中选中或更改为“横向或纵向”,在“尺寸”下选择“方向”。

    4. 如果出现问题,请不要担心:只需将其更改回“肖像”并仔细检查设置。

答案 1 :(得分:0)

我在尝试使用自动调整大小方法时遇到了同样的问题。所以,我希望这会有所帮助。 (P.S。我假设你是以编程方式而不是通过IB创建UI)

你试过这个吗?

在viewcontroller中添加以下内容:

// Set the View Controller to fit the whole screen. -(BOOL)wantsFullScreenLayout{ return YES; }

在loadView方法中,将scrollView修改为:

// set the initial size of your scrollView object.
[scrollView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

// Set the auto resizing attributes.
[scrollView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];

除此之外,您可能还需要为UIView或UIImageView设置autoresizingmask边距,具体取决于旋转设备时所需的布局类型。