界面构建器位置关闭屏幕

时间:2015-06-11 22:09:50

标签: ios xcode swift interface-builder

我有一个容器视图,显示固定到主视图前缘的侧边栏。侧边栏是初始可见的,这对iPad来说很好,但我希望它最初可以隐藏为较小的设备。为此,我需要将侧边缘后缘约束设置为(0 - 它自己的宽度)

据我所知,这在界面构建器中是不可能的。我曾尝试在viewDidLoad中执行此操作,在执行self.sidebarX.constant = -self.sidebar.frame.width之前检查设备是否为iPhone。这会失败,因为viewDidLoad尚未设置视图,因此宽度错误。我也尝试在viewDidLayoutSubviews中进行,但是用户看到侧边栏消失了,这并不好。我相信必须有一个共同的方法来解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

我终于解决了。 viewDidLayoutSubviews是正确的做法。首先,当我尝试它时,它显示侧边栏滑动视图控制器加载。事实证明这是因为我正在调用我的closeSidebar方法,该方法会动画侧栏移出屏幕。更改此设置,只是将视图设置为关闭屏幕并添加检查以确保仅在首次加载时执行一次(因为viewDidLayoutSubviews被多次调用),可以隐藏某些设备的侧边栏而无需任何人看到它。

答案 1 :(得分:0)

您可以使用xcode自适应布局设置:

enter image description here

您可以在此处为所有不同的屏幕类型设置不同的位置,将约束,位置,大小更改为您需要的每种不同类型。

您可以使用以下对话框在不同的屏幕类型中安装一个对象的布局:

enter image description here

查看来自raywenderlich part 1 part 2

的这个2部分教程