我有一个通知视图,我在启动后添加到应用程序的窗口,因此它会悬停在所有其他视图之上。
当用户旋转设备时,视图不会像UIViewController
所拥有的那样自动调整大小。
有没有办法手动要求应用视图的autoresizingMask
?或者,或者,如何在设备轮换时调整视图控制器的视图?
答案 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中?