我有一个通知视图,我在启动后将其添加到应用程序的窗口中,因此它悬停在所有其他视图之上。
当用户旋转设备时,视图不会像UIViewController拥有的视图那样自动调整大小。
有没有办法手动要求应用视图的autoresizingMask?或者,如何让没有视图控制器的视图在设备旋转时调整大小?
发布于 2012-04-10 14:15:53
我发现添加到应用程序窗口的视图甚至不旋转,更不用说调整大小了。
这是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];而且,它也解决了你的问题,你的通知视图现在应该根据它的掩码来调整大小。
发布于 2010-08-27 04:24:04
autoResizingMask本身与旋转没有任何关系。它只是定义了当它的superview调整大小时视图的大小。
如果您添加一个顶级视图控制器,该控制器的视图大小与窗口大小相同,并且包含所有其他视图,则它应该可以工作。那么你的通知视图将是顶层视图的一个子视图(连接到一个视图控制器),并且应该自动旋转。
发布于 2010-08-27 06:26:07
您是否设置了:
view.autoresizesSubviews = YES;在适当的superview中?
https://stackoverflow.com/questions/3579014
复制相似问题