如何初始化UIView以便它在横向模式下覆盖屏幕?

时间:2013-06-30 15:41:17

标签: ios cocoa-touch uiview

我正在使用initWithFrame方法初始化一个UIView,它将充当视图控制器主视图的子视图;然而,UIView似乎总是基于肖像模式框架呈现自己(从而将自己固定在屏幕的一侧)而不是横向模式框架,它将覆盖整个屏幕。

我正在横向模式下初始化视图控制器,因此应该使用正确的参数初始化uiview,但现在看来并非如此。我一直在使用superview的框架,superview的边界,UIScreen mainscreen作为initWithFrame的可能参数(rects),但到目前为止我没有运气。

1 个答案:

答案 0 :(得分:2)

初始化后,您需要为视图定义正确的autoresizingMask

首先,使用frame作为屏幕bounds初始化视图(如果您的父视图占据整个屏幕,则初始化视图)。然后,按如下方式设置您的观看次数autoresizingMask

self.myView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | 
  UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
  UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;

这会使您的观看次数在父级视图bounds发生变化时自动更改为bounds