2012-07-02 68 views
2

我想提供旋转支持,但是当两个UIViews之间转换时,autoResizingMask属性似乎被忽略。UIView在转换子视图时自动调整大小

下面是一个视频说明问题: http://www.youtube.com/watch?v=AWtO7J6YNxA

我现在有设置到每个的UIView(母体和子视图):

uiView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); 

此外,父视图具有:

self.view.autoresizesSubviews = YES; 
+0

你实际上是以编程方式设置'autoresizingMask'吗?这个视图('uiView')是动态创建的...那是为什么?我非常努力地在Xcode的图形设计器中设置这样的东西。您可以使用图形工具来设置自动调整屏蔽设置,而小动画将向您显示视图将如何调整大小。另外,我也很少设置autoresizingMask。如果它的宽度和/或高度是灵活的,通常我也会用'UIViewAutoresizingFlexibleLeftMargin'这样的东西把它固定到左/右/底部/顶部。我不确定这是否适合你......只是头脑风暴。 – Nate

回答

0

看起来像从Web视图(Google页面)返回时,上面提到的两个视图正在PORTRAIT模式下显示,但t他的设备在LANDSCAPE。如果是这样,您可以在转换到UIWebView页面之前存储两个视图框架坐标(x,y,宽度和高度),并在转换回来时恢复它们。当然,如果设备处于横向模式或纵向模式,您将需要检查返回。

如果保存帧坐标在纵向模式下,你从你的UIWebView返回到屏幕和设备处于纵向模式,然后只需用

self.myView.frame = CGRectMake(savedValueOfX, 
           savedValueOfY, 
          savedValueOfWidth, 
         savedValueOfHeight); 

恢复它们如果该设备目前处于横向模式,则像这样恢复它们...

self.myView.frame = CGRectMake(savedValueOfX, 
           savedValueOfY, 
          savedValueOfHeight, 
          savedValueOfWidth); 
相关问题