【发布时间】:2011-04-04 11:42:59
【问题描述】:
我有一个通知视图,我在启动后将其添加到应用程序的窗口中,因此它悬停在所有其他视图之上。
当用户旋转设备时,视图不会像 UIViewController 所拥有的那样自动调整大小。
有没有办法手动请求应用视图的autoresizingMask?或者,我怎样才能让没有视图控制器的视图在设备旋转时调整大小?
【问题讨论】:
-
您找到可接受的答案或解决方案了吗?我也有同样的问题。
我有一个通知视图,我在启动后将其添加到应用程序的窗口中,因此它悬停在所有其他视图之上。
当用户旋转设备时,视图不会像 UIViewController 所拥有的那样自动调整大小。
有没有办法手动请求应用视图的autoresizingMask?或者,我怎样才能让没有视图控制器的视图在设备旋转时调整大小?
【问题讨论】:
我发现添加到应用程序窗口的视图甚至不旋转,更不用说调整大小了。
这是针对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];
而且,它还解决了您的问题,您的通知视图现在应该根据其掩码调整大小。
【讨论】:
autoResizingMask 与旋转本身没有任何关系。它只是定义了在调整其父视图大小时应如何调整视图大小。
如果您添加一个顶级视图控制器,它应该可以工作,其视图与窗口大小相同,并且包含所有其他视图。然后你的通知视图将是顶层视图的子视图(连接到视图控制器),并且应该自动旋转。
【讨论】:
你设置了吗:
view.autoresizesSubviews = YES;
在适当的超级视图中?
【讨论】: