如何在 xib 文件中使用子视图和超级视图之间的纵横比?

Posted

技术标签:

【中文标题】如何在 xib 文件中使用子视图和超级视图之间的纵横比?【英文标题】:how to use aspect ratio between subview and super view in xib files? 【发布时间】:2015-01-30 05:41:04 【问题描述】:

我在 xib 文件中使用自动布局,而不是使用 Storyboard。 我在 self.view 上添加了一个UIImageView。我正在尝试在UIImageView 宽度和超级视图高度上设置纵横比。但是当我将控件从UIImageView(子视图)拖动到self.view(超级视图)以启用纵横比选项时,我很惊讶纵横比选项没有出现。

只有四个选项来了

    到容器的尾随空间。 到容器的顶部空间。 在容器中水平居中。 在容器中垂直居中。

如何设置subviewsuperview的纵横比。

提前致谢。

【问题讨论】:

两个视图之间的纵横比并没有那么大的意义。你确定你说的不是比例宽度或高度吗? 是的,我的意思是一样的,我可以在故事板中做同样的事情。但是没有故事板就无法做到。 即使在 xib 中,pin 选项也有纵横比设置。要设置纵横比,请选择两个视图元素,然后设置纵横比。 我也做了同样的事情,但它不起作用。 【参考方案1】:

Emulating aspect-fit behaviour using AutoLayout constraints in Xcode 6

出色而简单的解释(带有图像!)可能会帮助您解决问题。希望这会有所帮助...

【讨论】:

【参考方案2】:

我不确定为什么 XIB 不允许您在顶层设置纵横比约束。这是一个解决方法:

    向顶层视图添加视图。 将其顶部、左侧、右侧和底部固定到顶层视图的顶部、左侧、右侧和底部。使所有偏移量为 0。 现在您可以将您的 imageView 添加到此视图中,并按照您的预期使用 Aspect Ratio 约束。

【讨论】:

以上是关于如何在 xib 文件中使用子视图和超级视图之间的纵横比?的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局的 xib 添加为子视图时不显示

如何将视图 XIB 作为子视图加载到视图控制器 XIB 中

如何使用来自 xib 文件的任何子视图(在 xib 中创建)的多个副本

xib 中的自动布局 - 子视图的高度与导航栏和标签栏之间的空间成正比

如何使用xib插入子视图?

带有子视图的自动布局 NSCollectionView