我正在尝试在我的通用应用上设置我的用户界面。我有一个带有大小类的故事板设置,一个相当简单的UI。我有一个带有视图的视图控制器。在此视图中,我绘制了一个图表,因此只能使用setFrame
更新。
这是我的问题开始的地方。我将图表设置为屏幕宽度。但是,当视图最初运行时,大小类似乎是未知的。
由于我的情节提要中默认的“任意”尺寸为600x600。我的观点认为它应该在我的iPhone上画600宽,显然不是这么宽。
只有在我实际移动iPhone以切换方向更改后,才会更新并识别正确的尺寸。
所以我的问题是,如何防止这个问题?我需要我的用户界面知道从开始到什么尺寸,而不仅仅是在用户旋转iPhone之后。
答案 0 :(得分:2)
但是,当视图最初运行时,大小类似乎是未知的。
视图和视图控制器是未知的,因为此时视图控制器还不是接口的一部分,并且没有环境。但UIScreen.mainScreen()
并不为人所知。所以如果你很早就需要这些信息,那就是问谁。
但是,正如您在评论中被告知的那样,听起来您可能只是提前做 。视图控制器视图中的任何内容(包括视图本身)都没有达到viewDidLoad
或更高版本之前的实际大小。
答案 1 :(得分:1)
有两个可以防止此问题
(1)将整个方法加载到
中-(void)viewDidAppear:(BOOL)animated
{
}
(2)执行以下步骤