Мне удалось получить маску для UIImageView из png, используя свойство .mask
, но было интересно, существует ли какой-либо простой способ нарисовать границу вокруг маски.Добавить границу маски после маскировки 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()
является функ просто выложив Collection View Cell и позиционирование profilePictureContainerView
внутри Это.
То, что я хочу достичь
Положите границу, скажем, красный, вокруг черной формы (то есть, «внутреннее ребро» Маски в).
Любые идеи?
Учитывая, что ваша форма довольно сложна и обычна, я бы сказал, что для этого нет простого способа. Самый простой способ сделать это - создать форму границы как отдельное изображение и наложить ее поверх вашего профиля profilePictureContainerView. Это все равно позволит вам изменить свой цвет с помощью свойства 'tintColor' на' UIImageView', просто не забудьте отметить изображение для рендеринга в качестве изображения шаблона в активах (https://krakendev.io/blog/4-xcode-asset-catalog -secrets-you-need-to-know) – Losiowaty
@ Losiowaty: действительно думал о том, чтобы делать то, что вы сказали как обходной путь. Определенно быстро сделать, благодарю вас за то, что вы напомнили мне, чтобы пометить образ как шаблон (я уверен, что я бы забыл об этом). Работает отлично! – Herakleis