访问导航栏高度和状态栏高度

时间:2015-06-17 16:22:50

标签: ios swift uiview uiviewcontroller

我目前正在使用Swift开发我的第一个iOS应用程序,并且我在应用程序开发的UI部分遇到了很多问题。我已经决定以编程方式完成所有观点,因为它们足够复杂,以至于我认为故事板会成为主要的痛苦。

我目前的问题是,我正在尝试将我的视图中的所有间距设置为相对,以便屏幕尺寸在运行时无关紧要。我的第一个问题是从上到下的间距。我知道我必须考虑状态栏高度和导航栏高度。我知道如何在视图控制器中访问这两个值,但我正在努力应该存储这些值。

我是否必须在我使用它们的每个视图控制器中访问这些值?我是通过视图控制器将这些值传递给我的视图还是应该在视图控制器中完成所有框架?我以为我理解了视图控制器和视图之间的关系,但我并不完全清楚如何处理像间距这样的东西。那是在视图控制器端还是视图?

我知道我可以破解这个并让它发挥作用,但我更感兴趣的是"纠正"这样做的方法是。如果有人可以使用,那么以编程方式创建并使用所有设备的视图和视图控制器的示例将非常棒。

2 个答案:

答案 0 :(得分:1)

我建议你不要在代码中做'一切'。如果您只是在代码中布局所有视图,您仍然可以使用故事板来管理位于导航栏和状态栏下方的单个视图。然后你永远不必使用其中任何一个的实际高度。

答案 1 :(得分:0)

  

我正在尝试将我的视图中的所有间距设置为相对,以便在它运行时屏幕大小不重要。

实现此目标的最佳方法是使用autolayout。它既可以用于故事板设计器,也可以用于编程。它允许您定义UI元素的行为方式,而无需了解状态栏,工具栏,导航栏,屏幕宽度和高度等的尺寸。