将 UIImageView 裁剪到父母的边界

Posted

技术标签:

【中文标题】将 UIImageView 裁剪到父母的边界【英文标题】:Crop UIImageView to bounds of parents 【发布时间】:2017-09-08 06:11:20 【问题描述】:

我在另一个 UIView 中有一个 UIImageView。 UIImageView 比 UIView 略高。不过,我希望 UIImageView 只能在 UIView 中查看。不应看到 UIView 之外的 UIImageView 的任何部分。

我正在使用 UITableView,在 UITableViewCell 内部将是 UIView,它给它一个“卡片”的外观。正如您在下面的屏幕截图中看到的那样,颜色(红色、蓝色、紫色、绿色和橙色)是单元格的背景颜色。 UIView 是单元格内的内容。

从只看,我不得不从 UIView 将 clipToBounds 设置为 true。我这样做了,故事板中的示例视图似乎有效。

“真相是什么?”中的图像UIView 和“关于我们” UIView 正确裁剪图像。现在,当我在模拟器中运行它时,它不会裁剪图像。

您可以看到 UIView 上方和下方的图像流血。

仅供参考,图像的不透明度为0.35

如何让图像正确裁剪到 UIView 边框?

【问题讨论】:

为 UIImageView 设置 clipToBounds = true。 Rob,如果你想让 UIIMageView 在 UIView 内有界,为什么你的 UIIMageView 比 UIView 高。只需将其放入 View 并为您的 UIImageView 设置 set clipToBounds = true。 @AshokPolu 试过了,没用 @ankit 我希望 uiImageview 位于 uiView 内,但它会比 UIView 高。所以,从 UIView 中溢出的那一点点,我不想被看到。 【参考方案1】:

如果您使用约束,则将高度约束添加到图像视图,然后尝试。

在您的情况下,它是灵活的,因此 uitableViewCell 会在 imageview 中获取图像的高度。

【讨论】:

我希望 uitableViewCell 保持相同的大小。我希望 uiImageView 保持相同的比例。如果它拉伸到相同的高度,那么图像将被扭曲。 在这种情况下,您可以使用纵横比,而不是固定高度。 是的,但是图像不适合两侧 请分享添加高度约束后的截图,可能需要尝试不同的contentMode。【参考方案2】:

设置 UIImageView 属性, clipsToBounds = true

不仅仅是父 UIView。即使 UIImageView 是您的 UIView 的子项,它们也具有不同的属性。

【讨论】:

以上是关于将 UIImageView 裁剪到父母的边界的主要内容,如果未能解决你的问题,请参考以下文章

将 UIImageView 添加到单元格边界之外的 UITableViewCell

使用 UIViewContentModeScaleAspectFill 裁剪到边界

如何裁剪用户缩放的 UIImageView

将 UIimageView 放在前面

将 UIImageView 裁剪为 9 块

裁剪边界之外的 UIScrollview 子视图未接收到触摸