Fre*_*son 10 mask uiimageview ios swift
我想知道如果我想使用蒙版图像来获得UIImageView特定形状我需要什么.根据我的理解,要创建一个蒙版,我需要在白色背景上有一个面具形状全黑的图像.像这样的东西,例如:
首先,这是否足以塑造图像视图,如果是这样,我如何在Swift 3中完成?我只能找到过时或用Objective-C编写的掩码.我试过简单地将上面的图像分配给a UIImageView,然后将图像视图分配给我想要塑造的mask属性UIImageView,如下所示:
self.defaultImageView.mask = self.maskImageView
Run Code Online (Sandbox Code Playgroud)
这没有做任何事情.它刚刚self.maskImageView消失(图像视图通过故事板添加并使用IBOutlet属性连接).我确定我忘了做某事.这不可能是这么简单.如果有人可以帮助我,我将不胜感激.就像我说的那样,我将两个图像视图放在故事板中的完全相同的位置上.
更新: 我第一次尝试从故事板中删除它后以编程方式设置掩码.
let layer:CALayer = CALayer()
let mask:UIImage = UIImage(named: "Black-Star-Photographic-Agency")!
layer.contents = mask
layer.frame = CGRect(x: 0, y: 0, width: ((self.defaultImageView.image?.size.width)!), height: (self.defaultImageView.image?.size.height)!)
self.defaultImageView.layer.mask = layer
self.defaultImageView.layer.masksToBounds = true
Run Code Online (Sandbox Code Playgroud)
结果是图像视图完全消失,不再可见.我在做什么,我忘记了什么或两者兼而有之?
ale*_*nik 17
你应该使用支持透明度的png图像,这与jpg不同.
在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
}
Run Code Online (Sandbox Code Playgroud)
输出:
这是一个测试项目,展示它是如何工作的.
| 归档时间: |
|
| 查看次数: |
7846 次 |
| 最近记录: |