大小 class 最初未知

Size class initially unknown

我正在尝试在我的通用应用程序上设置我的 UI。我有一个故事板设置,大小为 classes,相当简单 UI。我有一个带有视图的视图控制器。在这个视图中,我绘制了一个图表,因此只能使用 setFrame.

进行更新

这就是我的问题开始的地方。我将图表设置为屏幕宽度。但是,当视图最初运行时,大小 class 似乎是未知的。

因为我的情节提要中的默认 'Any' 大小是 600x600。我的观点认为它应该在我的 iPhone 上绘制 600 宽,这显然不是这么宽。

只有在我物理移动 iPhone 以切换方向更改后,它才会更新并识别正确的尺寸。

所以我的问题是,我该如何预防这个问题?我需要我的 UI 从一开始就知道尺寸是多少,而不仅仅是在用户旋转他们的 iPhone.

之后

However, when the view initially runs, the size class seems to be unknown.

对于视图和视图控制器是未知的,因为那时视图控制器还不是界面的一部分并且没有环境。但是UIScreen.mainScreen()并不陌生。因此,如果您很早就需要这些信息,那就是问谁。

但是,正如您在评论中被告知的那样,听起来您可能只是 太早 了。在 viewDidLoad 或更晚之前,视图控制器视图中的任何内容(包括视图本身)都未达到其实际大小。

有两个方法可以防止这个问题

(1) 在

中加载整个方法
-(void)viewDidAppear:(BOOL)animated
{
}

(2) 执行以下步骤

  • 转到文件检查器
  • 取消选中“使用大小分类