转换子视图时,UIView会自动调整大小

时间:2012-07-02 08:41:47

标签: iphone objective-c ios

我正在尝试提供旋转支持,但是当在两个UIView之间转换时,autoResizingMask属性似乎被忽略。

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

我目前将每个UIView(父视图和子视图)设置为:

uiView.autoresizingMask =  (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight );

此外,父视图具有:

self.view.autoresizesSubviews = YES;

1 个答案:

答案 0 :(得分:0)

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

如果您在PORTRAIT模式下保存了Frame坐标并从UIWebView返回到屏幕并且设备处于PORTRAIT模式,那么只需使用

恢复它们
self.myView.frame = CGRectMake(savedValueOfX, 
                               savedValueOfY,
                           savedValueOfWidth,
                         savedValueOfHeight);

如果设备现在处于LANDSCAPE模式,则将其恢复为......

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