**UIKit**
**UIView** масок можно применить, установив `maskView` свойство. Например:
«`swift
let maskView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
maskView.backgroundColor = .black
let viewToMask = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
viewToMask.backgroundColor = .red
viewToMask.mask = maskView
«`
**CALayer** масок можно применить, установив `mask` свойство. Например:
«`swift
let maskLayer = CALayer()
maskLayer.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
maskLayer.backgroundColor = UIColor.black.cgColor
let layerToMask = CALayer()
layerToMask.frame = CGRect(x: 50, y: 50, width: 100, height: 100)
layerToMask.backgroundColor = UIColor.red.cgColor
layerToMask.mask = maskLayer
«`
**Core Graphics**
Для использования масок с Core Graphics, вы можете использовать `CGContext` функции:
«`swift
// Создать контекст рендеринга
let context = UIGraphicsGetCurrentContext()!
// Создать маску
let maskImage = UIImage(named: «MaskImage»)!
// Применить маску
context.clip(to: maskImage.cgImage!, mask: maskImage.cgImage!)
// Нарисовать фигуру
context.setFillColor(UIColor.red.cgColor)
context.fill(CGRect(x: 50, y: 50, width: 100, height: 100))
«`
**Советы по производительности**
* Маски с высоким разрешением могут снизить производительность.
* По возможности используйте простые формы маски.
* Кэшируйте маски, которые будут использоваться повторно.
* Удаляйте маски, когда они больше не нужны.