【问题标题】:Masking a UIImageView doesn't work屏蔽 UIImageView 不起作用
【发布时间】:2016-09-02 09:55:48
【问题描述】:

我有一个UIImageview 设置:

let picture = UIImageView(frame: imageFrame)
picture.image = UIImage(named: image)

你可以在这里看到它:

现在我想把它屏蔽成一个固定的大小,因为我要做的是随机大小的随机图片,所以我创建了一个 UIView:

let frame = CGRect(x: 0, y: CGRectGetMaxY(menuLine.frame) + HeightForSize * 0.05, width: view.bounds.width, height: HeightForSize * 0.9)
let mask = UIView(frame: frame)
mask.backgroundColor = UIColor.whiteColor()

当我将子视图添加到我的视图时,它看起来像这样:

但是当我试图掩盖它时:

picture.maskView = mask

看起来是这样的,这是怎么回事?

【问题讨论】:

  • 我建议根本不要屏蔽。您可以将 imageView 的大小设置为固定大小,然后使用属性contentMode 来调整它显示图像的方式。我建议 ScaleAspectFill 猜测您是如何尝试使用它的。
  • 你有一些代码作为例子,所以我知道怎么做,这是我第一次使用它

标签: ios swift uiview uiimageview mask


【解决方案1】:

UIImageView 尊重 contentMode 这可能比掩码更容易满足您的目的。将您的 imageView 设置为您希望所有图像适合的固定大小。例如,如果您希望图像挤入并在其太高时显示黑条,请使用 UIViewContentMode.scaleAspectFit。但更有可能看起来最好的是UIViewContentMode.scaleAspectFill。它将保持图像的纵横比和比例,直到填满您创建的 imageView 框。玩一下这两种模式和其他模式,看看它们的效果。

let imageView = UIImageView(image: UIImage(named: "myImage"))
imageView.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
imageView.contentMode = .scaleAspectFill

您可以在此处尝试有关各种 contentModes 的更多信息。

https://developer.apple.com/reference/uikit/uiviewcontentmode

【讨论】:

    猜你喜欢
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    相关资源
    最近更新 更多