如何让应用程序居中和/或填满屏幕?

时间:2016-06-30 10:45:25

标签: ios xcode swift

我是Xcode的新手,我有一个非常简单的布局,一个方形的ImageView,下面有两个按钮。我将它们包装在名为Box的UIView中(作为viewForZoomingInScrollView的子视图目标),它包含在ScrollView中。

我尝试使用SingleView模板以两种不同的方式构建它。在第一种方式中,我将ViewController的视图更改为ScrollView,就像这样。

enter image description here

其次,我也在ViewController的视图中使用Scrollview尝试了这个。

enter image description here

在这两种情况下,一切正常或正如预期的那样,除了:在这两种情况下,整个ViewController都会固定在屏幕的左上角,无论方向或缩放级别如何。

* Omg,我在一天内解决了所有资源管理和行动问题,现在我花了将近一周时间与布局*进行斗争

当我没有约束时,像这样:

enter image description here

应用程序打开就像这样。 View是Black,ScrollView是紫色,Box是DKGray,ImageView是LTGray

View is Black, ScrollView is Purple, Box is DKGray, and ImageView is LTGray

当我捏住它时,图像保持(弹跳后)固定在左上角。

enter image description here

如果我向ScrollView和Box添加居中约束,

enter image description here

ScrollView的约束受到尊重,但Box不受约束。 (实际上当应用程序打开Box填充ScrollView时,只有在收到Box后才会进入左上角。可以滚动破坏约束......?我是否必须在scrollViewDidEndZooming中设置约束?)

enter image description here

以下是我目前的子问题。当布局没有足够的约束时,它必须添加它们。它增加的限制是否优先于我的?有没有办法看到它增加了什么约束?我得到了上述限制的警告。

enter image description here

Over Arching问题:如何让它位于iOS屏幕的中心或填满屏幕?我想有一个Interface Builder解决方案和代码解决方案,或者两者都会引起人们的兴趣。

感谢阅读。

2 个答案:

答案 0 :(得分:2)

更改元素对齐

每个元素都需要有约束来勾勒它应该在其父元素中显示的位置。即,现在您在视图内部有一个图像,在滚动视图内。因此,这三个元素中的每一个都需要设置约束。

对于每个元素:

  1. 点击元素
  2. 点击“添加新对齐约束”'右下角的按钮
  3. 检查容器中的水平位置'和'垂直在容器中'复选框,然后点击“添加2个约束”'按钮
  4. 运行您的应用,您现在应该看到图像水平和垂直居中对齐。

    动态更改元素大小 通过故事板也很容易做到这一点。该视频向您展示了如何操作:https://www.youtube.com/watch?v=aSsR1NlQvMA 唯一的额外事情是你需要对每个元素执行此操作,如上所述。

答案 1 :(得分:1)

尝试选择你的scrollView,并在autoLyout的Pin菜单中尝试添加这些约束。

enter image description here