强制autoresizingMask应用于UIView

时间:2010-08-26 20:00:57

标签: iphone uikit rotation ios

我有一个通知视图,我在启动后添加到应用程序的窗口,因此它会悬停在所有其他视图之上。

当用户旋转设备时,视图不会像UIViewController所拥有的那样自动调整大小。

有没有办法手动要求应用视图的autoresizingMask?或者,或者,如何在设备轮换时调整视图控制器的视图?

3 个答案:

答案 0 :(得分:1)

我发现添加到应用程序窗口的视图甚至不会旋转,更不用说调整大小了。

Orientation in a UIView added to a UIWindow询问并回答:将通知视图添加到窗口的第一个子视图中。

UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) 
    window = [[UIApplication sharedApplication].windows objectAtIndex:0];
[[[window subviews] objectAtIndex:0] addSubview:myView];

而且,它也解决了您的问题,您的通知视图现在应该根据其掩码调整大小。

答案 1 :(得分:0)

autoResizingMask与旋转本身没有任何关系。它只定义了在调整superview时调整视图的大小。

如果添加顶级视图控制器,其视图大小与窗口大小相同,并且包含所有其他视图,则应该可以正常工作。然后你的通知视图将是顶层视图的子视图(连接到视图控制器),并且应该自动旋转。

答案 2 :(得分:0)

你有没有设置:

view.autoresizesSubviews = YES;

在相应的superview中?