【发布时间】:2017-02-08 09:55:40
【问题描述】:
我设法使用 .mask 属性从 png 中获取 UIImageView 的蒙版,但想知道是否有任何简单的方法可以在蒙版周围绘制边框。
外观:
代码(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:确实在考虑按照您所说的解决方法。绝对很快,感谢您提醒我将图像标记为模板(很确定我会忘记它)。工作得很好!
标签: ios swift uiimageview swift3 mask