Например, у меня есть представление с 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)