Middle
Hogyan módosítsuk a magasságkorlátozást, hogy a fejlécsorok nullára összeomoljanak?
sobes.tech MI
Válasz az MI-től
A fejléc összecsukásához megváltoztathatja a magasságkorlátozás konstans értékét 0-ra.
Auto Layout példával:
// Tegyük fel, hogy van egy IBOutlet a fejléc magasságkorlátozásához
@IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!
// A fejléc összecsukásához:
headerHeightConstraint.constant = 0.0
// Az eredeti magasság visszaállításához (ha ismert):
// headerHeightConstraint.constant = originalHeaderHeight
// Ne felejtse el frissíteni a layout-ot, ha nem használ automatikus frissítést
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
NSLayoutConstraint.activate/deactivate példával:
// Tegyük fel, hogy van az eredeti magasságkorlátozás és egy nullás
let originalHeaderHeightConstraint: NSLayoutConstraint!
let zeroHeaderHeightConstraint: NSLayoutConstraint!
// Inicializálás vagy konfiguráció során:
originalHeaderHeightConstraint = headerView.heightAnchor.constraint(/* ... eredeti magasság ... */)
zeroHeaderHeightConstraint = headerView.heightAnchor.constraint(equalToConstant: 0.0)
zeroHeaderHeightConstraint.isActive = false // Kezdetben nem aktív
// A fejléc összecsukásához:
NSLayoutConstraint.deactivate([originalHeaderHeightConstraint])
NSLayoutConstraint.activate([zeroHeaderHeightConstraint])
// Az eredeti magasság visszaállításához:
// NSLayoutConstraint.deactivate([zeroHeaderHeightConstraint])
// NSLayoutConstraint.activate([originalHeaderHeightConstraint])
// Layout frissítése animációval
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
A módszer kiválasztása attól függ, hogyan konfigurálta a constraints-t. A constant használata egyszerűbb a meglévő constraints esetén. Az aktiválás/deaktiválás akkor hasznos, ha gyorsan váltogatni kell különböző állapotok között, vagy amikor több constraints határozza meg a magasságot.
Fontos, hogy meghívja a layoutIfNeeded()-et (preferably az animációs blokkban), hogy a változások alkalmazódjanak, és a UI simán frissüljön.