【问题标题】:Add mask border after masking UIImageView with mask property使用 mask 属性屏蔽 UIImageView 后添加蒙版边框
【发布时间】: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:确实在考虑按照您所说的解决方法。绝对很快,感谢您提醒我将图像标记为模板(很确定我会忘记它)。工作得很好!

标签: ios swift uiimageview swift3 mask


【解决方案1】:

你试过层吗?

maskingView.layer.borderWidth = 1 // Or any width 
maskingView.layer.borderColor = UIColor.red.cgColor

【讨论】:

  • 这将在视图周围给出一个矩形边框。
  • @Losiowaty 正是,正要回复。
猜你喜欢
  • 2015-01-05
  • 2018-09-17
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
  • 2012-03-24
  • 1970-01-01
相关资源
最近更新 更多