Почему добавление подуровней перекрытия перекрывает?

Например, у меня есть представление с UILabel как subview. Если в какой-то момент я добавлю подуровень с некоторым цветом фона на этот уровень представления, эта метка исчезнет. Может ли кто-нибудь объяснить это поведение?

Ответ 1

Когда вы добавляете вашу UILabel в качестве подпредставления вашего представления, он добавляет ваш слой UILabel в качестве подслоя вашего слоя представления. Поэтому, когда вы добавляете еще один подслой в свой слой представления, он будет поверх вашего слоя UILabel.

Вы можете добавить свой фоновый слой перед добавлением UILabel или сделать:

стриж

view.layer.insertSublayer(backgroundLayer, below: yourLabel.layer)

Цель С

[view.layer insertSublayer:backgroundLayer below:yourLabel.layer]

и это должно поместить фон позади этикетки.

Ответ 2

Для меня было полезно вставить слой с определенным индексом, например так:

view.layer.insertSublayer(backgroundLayer, at: 0)