当使用loadView创建视图时,在旋转时视图的框架大小不会改变。

3

我有一个没有xib文件的UIViewController,并且我正在使用loadView来构建我的UI,创建并添加了两个滚动视图。问题是,当旋转发生时,主视图的框架大小不会改变。也就是说,在loadView中为主视图设置了初始框架大小(竖屏模式:框架大小宽度=320,高度=480)。在旋转到横向方向后,视图的主框架大小不会改变,并且与竖屏模式相同。这是我的loadView:

-(void)loadView{

  CGRect screenBounds = [[UIScreen mainScreen] bounds];    
  self.view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, screenBounds.size.width, screenBounds.size.height)] autorelease];
  self.view.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
  self.scrollView1 = [[[UIScrollView alloc] init] autorelease];
  self.scrollView1.frame = CGRectMake...
  [self.view addSubview:self.scrollView1];
  self.scrollView2 = [[[UIScrollView alloc] init] autorelease];
  self.scrollView2.frame = CGRectMake...
  [self.view addSubview:self.scrollView2];

我还为视图设置了自动调整大小的 mask 属性,以便根据屏幕大小进行扩展或缩小。但是在控制台中调试时,我得到的宽度和高度值相同。我需要获取一个新的大小,因为当旋转发生时,例如在横向模式下缩小滚动视图的高度并扩展宽度时,需要重新定位我的两个滚动视图。我可以在 shouldRotate 中手动完成,只是好奇应该如何以正确的方式完成。

1个回答

9

我注意到在旋转屏幕时,self.view.frame的大小不会改变,但是self.view.bounds会改变,并且bounds会根据当前界面方向呈现正确的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接