【问题标题】:UIImageView Aspect Fill not filling viewUIImageView Aspect Fill 不填充视图
【发布时间】:2018-07-11 03:24:44
【问题描述】:

我在 XIB 中为我的 UIImageView 选择了视图 > 模式下的纵横比填充,但它顽固地显示相同大小的图像。

I                   I
I                   I
I   MY IMAGE HERE   I
I                   I
I                   I

MY IMAGE上下都有空格。

我做错了什么?

==== 更新

带有红色背景颜色:

RRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRRRRRRRRR
I   MY IMAGE HERE   I
RRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRRRRRRRRR

Aspect Fill 不应该让它更像是整个矩形被MAG 之类的东西填充,其中MY IE HERE 不在屏幕上。

【问题讨论】:

  • 不是答案,但您可以在视图控制器的 didLayoutSubviews 中以编程方式将 UIImageView 的 contentMode 设置为 UIViewContentModeScaleAspectFill。 (应该解决问题..)您是否在代码中的其他地方为其分配了 contentMode?​​span>

标签: ios objective-c uiimageview


【解决方案1】:

哦。原来是一些愚蠢的东西,但我把它贴在这里以防它节省了几个小时的调试时间。

原来我在 XIB 中有 AspectFill,然后在我的代码中有 AspectFit(它胜过 XIB)。

【讨论】:

    【解决方案2】:

    您是否指定了 UIImageView 来填充屏幕?

    如果您指定模式,您将更改实际图像在 imageView 中的显示方式。但是如果你的 UIImageView 没有填满整个屏幕,嵌入的图像也不会填满整个屏幕。

    您应该指定布局约束以将 imageView 与其 superView 的边界对齐。

    一个简单的测试方法是将 UIImageView 的 backgroundColor 设置为不同于透明的东西 - 这样你就可以看到图像和 imageView 的位置

    【讨论】:

    • 用红色背景颜色更新了我的问题。
    • 好吧,这很奇怪!您的图像边缘附近是否有不透明度?这样它会出现错误的大小,但实际上显示正确
    • 边缘附近的不透明度是什么意思?
    • 是否透明,pngs有4个通道,红绿蓝和alpha。如果您的图像是透明的,您可能会错误地感知其实际尺寸。但是,如果我考虑一下,那么红色将不得不发光。您能否包括屏幕截图而不是 ascii 艺术!?
    【解决方案3】:

    另一种帮助调试的方法是添加边框。我的问题是设计提供的图像实际上周围有清晰的边界。很有可能您的尺寸选对了,但图片本身有问题。

    【讨论】:

      【解决方案4】:

      我仅在水平滚动 UIScrollView 时遇到了非常相似的问题。

      我对滚动视图有限制,加载到滚动视图中的 UIImageView 没有正确填充。

      删除滚动视图上的约束后,.scaleAspectFill 可以正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-29
        • 2017-07-31
        • 2018-04-01
        • 2020-07-22
        • 1970-01-01
        • 1970-01-01
        • 2015-05-17
        • 1970-01-01
        相关资源
        最近更新 更多