Google всегда дает результаты для автоматического размещения, когда я спрашиваю об этом.
У меня есть пользовательское представление, которое имеет несколько подпредставлений.Один из подпредставлений имеет 2 подпредставления.
Superview
- Subview 1
- Subview 2
- Subview 21
- Subview 22
- Subview 3
При некоторых действиях с кнопками я скрываю одно из внутренних подпредставлений (Subview 22).И после этого я обновляю высоту внешнего подпредставления (Subview 2).
subheader.frame = CGRect(x: subheader.frame.origin.x, y: subheader.frame.origin.y, width: subheader.frame.size.width, height: 0)
subheader.isHidden = true
viewTop.frame = CGRect(x: viewTop.frame.origin.x, y: viewTop.frame.origin.y, width: viewTop.frame.size.width, height: 60)
self.layoutSubviews()
подзаголовок является подпредставлением viewTop , а viewTop является подпредставлением родительского представления.
Проблема заключается в том, что высота viewTop не изменяется.
Примечание : viewTop имеет градиентный фон :
viewTop.setViewGradientBackground(UIColor(red: 228.0 / 255.0, green: 221.0 / 255.0, blue: 135.0 / 255.0, alpha: 1.0), backgroundColorBottom: UIColor(red: 150.0 / 255.0, green: 129.0 / 255.0, blue: 32.0 / 255.0, alpha: 1.0))
extension UIView
{
func setViewGradientBackground(_ backgroundColorTop: UIColor, backgroundColorBottom: UIColor)
{
let btnGradient = CAGradientLayer()
btnGradient.frame = self.bounds
btnGradient.colors = [backgroundColorTop.cgColor as CGColor, backgroundColorBottom.cgColor as CGColor]
self.layer.insertSublayer(btnGradient, at: 0)
}
}