我想知道如果我想使用蒙版图像来获取特定形状的UIImageView
,我需要什么。根据我的理解,要创建一个蒙版,我需要在白色背景上有一个面具形状全黑的图像。像这样的东西,例如:
首先,这是否足以塑造图像视图,如果是这样,我如何在Swift 3中完成?我只能找到过时或用Objective-C编写的掩码。我尝试过简单地将上面的图片分配到UIImageView
,然后将图片视图分配给我想要塑造的mask
的{{1}}属性,如下所示:
UIImageView
这没有做任何事情。它只是让self.defaultImageView.mask = self.maskImageView
消失了(两个图像视图都通过故事板添加并使用self.maskImageView
属性连接)。我确定我忘了做某事。它不能这么简单。如果有人可以帮助我,我将不胜感激。就像我说的那样,我把两个图像视图放在故事板上的完全相同的位置上。
更新 我第一次尝试在从故事板中删除它后以编程方式设置掩码。
IBOutlet
结果是图像视图已完全消失,不再可见。我在做什么,我忘记了什么或两者兼而有之?
答案 0 :(得分:13)
与jpg不同,你应该使用支持透明度的png图像。
在Photoshop中,您的图片应该与此类似:
如果您的形状是黑色或白色,则无关紧要。重要的是每个像素的透明度。不透明区域(在这种情况下为黑色)将可见,透明区域将被修剪。
修改强>
如果您这样做,则不应从故事板创建蒙版视图。它不会成为视图层次结构的一部分。只需以编程方式添加它:
let maskView = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
maskView.image = UIImage(named: "mask")
imageView.mask = maskView
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
maskView.frame = imageView.bounds
}
输出:
Here是一个测试项目,用于说明它是如何运作的。
答案 1 :(得分:0)
此外,如果您正在使用自定义框架/图像并且无法正确显示遮罩,请尝试设置遮罩的内容模式:
maskView.contentMode = .scaleAspectFit