屏蔽 UIImageView 不起作用
Posted
技术标签:
【中文标题】屏蔽 UIImageView 不起作用【英文标题】:Masking a UIImageView doesn't work 【发布时间】: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
猜测您是如何尝试使用它的。
你有一些代码作为例子,所以我知道怎么做,这是我第一次使用它
【参考方案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
【讨论】:
以上是关于屏蔽 UIImageView 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
具有异步 UIImageView 的自动布局 UITableViewCell 不起作用