【问题标题】:How do I make two equally sized imageviews cover the whole screen如何使两个相同大小的图像覆盖整个屏幕
【发布时间】:2023-03-08 07:48:01
【问题描述】:

我实现了一个类似于这个问题的视图控制器: iOS two views cover exactly half of parent view

我得到了想要的结果。问题是,当我将 UIImageView 添加到这两个容器中时,结果会调整大小并破坏对称性。如何防止 Imageviews 更改其容器的大小?我需要对这些图像使用 AspectFill。

【问题讨论】:

    标签: ios uiimageview autolayout


    【解决方案1】:

    我认为容器的大小没有改变。您只需将其clipsToBounds 属性设置为true 即可避免溢出。

    如果你使用 Reveal,你应该看到容器的大小没有改变,即使里面的图片比它们自己大。

    【讨论】:

      【解决方案2】:

      我不确定我是否理解您将 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 的高度(和宽度)成正比,如下所示:

      如果你这样设置,你应该能够完成(我认为)你想要完成的事情。

      如果我最初对您要达到的目标的假设不正确,请发布您所拥有的以及它如何不起作用的图片。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-15
        • 2020-10-21
        • 2016-02-23
        • 1970-01-01
        • 1970-01-01
        • 2021-05-09
        相关资源
        最近更新 更多