【发布时间】:2023-03-08 07:48:01
【问题描述】:
我实现了一个类似于这个问题的视图控制器: iOS two views cover exactly half of parent view
我得到了想要的结果。问题是,当我将 UIImageView 添加到这两个容器中时,结果会调整大小并破坏对称性。如何防止 Imageviews 更改其容器的大小?我需要对这些图像使用 AspectFill。
【问题讨论】:
标签: ios uiimageview autolayout
我实现了一个类似于这个问题的视图控制器: iOS two views cover exactly half of parent view
我得到了想要的结果。问题是,当我将 UIImageView 添加到这两个容器中时,结果会调整大小并破坏对称性。如何防止 Imageviews 更改其容器的大小?我需要对这些图像使用 AspectFill。
【问题讨论】:
标签: ios uiimageview autolayout
我认为容器的大小没有改变。您只需将其clipsToBounds 属性设置为true 即可避免溢出。
如果你使用 Reveal,你应该看到容器的大小没有改变,即使里面的图片比它们自己大。
【讨论】:
我不确定我是否理解您将 UIImageView 添加到那些导致视图调整大小的控制器中的意思,所以如果我弄错了,请原谅我......
听起来好像您创建了两个高度相等的视图,它们一起占用了屏幕的整个垂直空间。完成此操作后,您希望向原始两个视图中的每一个添加一个或多个 UIImageView。不幸的是,当您添加 UIImageView 时,封闭的视图会调整大小。
假设我的判断是正确的......
您是在 XIB 或 Storyboard 文件中使用 Interface Builder 执行此操作吗?如果是这样,您应该能够通过适当的约束来实现这一点。
在下图中,我已经列出了我上面描述的内容。
如您所见,我在窗口的上半部分有一个红色视图,在下半部分有一个绿色视图。红色视图包含一个宽度和高度为红色视图 75% 的 UIImageView,其原点位于红色视图内的 (20, 20)。
场景配置如下图:
“上视图”的限制是:
从中可以看出,Upper View 与其父视图的左、右和顶部齐平,并且它与 Bottom View 的空间为 0。您必须相信我,Bottom View 的设置相同方式。
Upper 和 Lower 视图的高度是“成比例的”,如此约束所示:
要实现这个“Proportional”设置,首先要让 Upper View 的高度等于 superview 的高度,然后编辑约束,将“Multiplier”从“1”更改为“0.5”。
Image View 的高度(和宽度)与 Upper view 的高度(和宽度)成正比,如下所示:
如果你这样设置,你应该能够完成(我认为)你想要完成的事情。
如果我最初对您要达到的目标的假设不正确,请发布您所拥有的以及它如何不起作用的图片。
【讨论】: