установки:iOS8: viewDidLayoutSubviews() скрывает элементы в раскадровки Auto-Layout
У меня есть мнение контроллер, состоящий из View
и Container View
.
У меня есть View
и Container View
с использованием размеров классов.
ниже код добавляет градиент просто отлично:
class ViewController: UIViewController {
@IBOutlet weak var graphView: UIView!
@IBOutlet weak var containerView: UIView!
let backgroundColor = CAGradientLayer().graphViewBackgroundColor()
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
backgroundColor.frame = self.graphView.bounds
self.graphView.layer.addSublayer(backgroundColor)
}
}
Выход:
Там нет ограничений, изложенных в коде.
Проблема:
Однако, у меня есть ярлык с черным фоном, который не появляется. Если я закомментируйте следующие строки, появляется метка:
//backgroundColor.frame = self.graphView.bounds
//self.graphView.layer.addSublayer(backgroundColor)
Выход:
Вопрос:
Почему градиент скрывается элемент UILabel, который в Auto-layout?
есть способ подтолкнуть градиент в спину? У меня есть еще 15 элементов. Должен ли я называть их все один за другим, чтобы вывести на передний план? – user1107173
Да, вместо 'bringSubviewToFront' вы можете сделать' sendSubviewToBack' – Sean
'self.view .sendSubviewToBack (self.graphView)'? не работает – user1107173