使用 mask 属性屏蔽 UIImageView 后添加蒙版边框
Posted
技术标签:
【中文标题】使用 mask 属性屏蔽 UIImageView 后添加蒙版边框【英文标题】:Add mask border after masking UIImageView with mask property 【发布时间】:2017-02-08 09:55:40 【问题描述】:我设法使用 .mask
属性从 png 中获取 UIImageView 的蒙版,但想知道是否有任何简单的方法可以在蒙版周围绘制边框。
外观:
Image
代码(UICollectionViewCell):
lazy var maskingView: UIImageView =
let view = UIImageView()
view.image = UIImage(named: "mask")
return view
()
lazy var profilePictureContainerView: UIImageView =
let containerView = UIImageView()
containerView.backgroundColor = .black
containerView.translatesAutoresizingMaskIntoConstraints = false
return containerView
()
override func layoutSubviews()
super.layoutSubviews()
maskingView.frame = profilePictureContainerView.bounds
override init(frame: CGRect)
super.init(frame: frame)
profilePictureContainerView.mask = maskingView
setUpViews()
setUpViews()
是一个 func,它只是布置一个 Collection View Cell 并将 profilePictureContainerView
定位在其中。
我想要达到的目标
在黑色形状(即蒙版的“内边缘”)周围放置一个边框,比如红色。
有什么想法吗?
【问题讨论】:
鉴于您的形状非常复杂和自定义,我想说没有直接的方法可以实现这一点。最简单的方法是将边框形状创建为单独的图像并将其覆盖在您的profilePictureContainerView
上。这仍然可以让您通过UIImageView
上的tintColor
属性更改其颜色,只需记住将图像标记为资产中的模板图像(krakendev.io/blog/…)
@Losiowaty:确实在考虑按照您所说的解决方法。绝对很快,感谢您提醒我将图像标记为模板(很确定我会忘记它)。工作得很好!
【参考方案1】:
你试过层吗?
maskingView.layer.borderWidth = 1 // Or any width
maskingView.layer.borderColor = UIColor.red.cgColor
【讨论】:
这将在视图周围给出一个矩形边框。 @Losiowaty 正是,正要回复。以上是关于使用 mask 属性屏蔽 UIImageView 后添加蒙版边框的主要内容,如果未能解决你的问题,请参考以下文章
如何让 UIImageView 尊重它的 superview.layer.mask
使用 angular-ui-mask 时屏蔽 SSN 的前 5 个字符