尺寸等级最初未知

时间:2015-06-15 13:33:44

标签: ios objective-c storyboard size-classes

我正在尝试在我的通用应用上设置我的用户界面。我有一个带有大小类的故事板设置,一个相当简单的UI。我有一个带有视图的视图控制器。在此视图中,我绘制了一个图表,因此只能使用setFrame更新。

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

由于我的情节提要中默认的“任意”尺寸为600x600。我的观点认为它应该在我的iPhone上画600宽,显然不是这么宽。

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

所以我的问题是,如何防止这个问题?我需要我的用户界面知道从开始到什么尺寸,而不仅仅是在用户旋转iPhone之后。

2 个答案:

答案 0 :(得分:2)

  

但是,当视图最初运行时,大小类似乎是未知的。

视图和视图控制器是未知的,因为此时视图控制器还不是接口的一部分,并且没有环境。但UIScreen.mainScreen()并不为人所知。所以如果你很早就需要这些信息,那就是问谁。

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

答案 1 :(得分:1)

有两个可以防止此问题

(1)将整个方法加载到

-(void)viewDidAppear:(BOOL)animated
{
}

(2)执行以下步骤

  • 转到文件Inspector
  • 取消选中“使用尺寸分类