Ответ
clipsToBounds — свойство UIView, контролирующее обрезку дочерних вью (subviews) по границам родительской вью.
Поведение
clipsToBounds = true— части дочерних вью, выходящие за границы родителя, не отображаютсяclipsToBounds = false(по умолчанию) — дочерние вью отображаются полностью, даже за пределами родителя
Пример
let container = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
container.backgroundColor = .blue
let subview = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
subview.backgroundColor = .red
container.addSubview(subview)
// Без обрезки
container.clipsToBounds = false
// Красный квадрат полностью виден (100×100)
// С обрезкой
container.clipsToBounds = true
// Видна только часть красного квадрата (50×50 в правом нижнем углу синего)
Типичные случаи использования
-
Круглые элементы (аватарки, кнопки)
avatarView.layer.cornerRadius = 25 avatarView.clipsToBounds = true // Изображение обрежется по круглой форме -
Кастомные контейнеры с чёткими границами
-
Анимации, где часть вью должна быть скрыта
-
Маски слоёв (работает в сочетании с
layer.mask)
Важно: clipsToBounds влияет только на отрисовку. Дочерние вью всё ещё получают touch events, даже если их видимая часть обрезана.