Middle
Kuidas muuta kõrguse piirangut, et pealkirjad kokku tõmbuksid nullini?
sobes.tech AI
Vastus AI-lt
Kui soovite päise kokku tõmmata, saate muuta selle constraint kõrguse konstantse väärtuse 0-ks.
Auto Layout näide:
// Näide, kus teil on IBOutlet seotud constraint kõrguse jaoks
@IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!
// Päise kokku tõmbamiseks:
headerHeightConstraint.constant = 0.0
// Kui teada algne kõrgus, siis taastamiseks:
// headerHeightConstraint.constant = originalHeaderHeight
// Ära unusta layouti uuendada, kui sa ei kasuta automaatset uuendust
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
Näide kasutades NSLayoutConstraint.activate/deactivate:
// Näide algse ja nulli constrainti kohta
let originalHeaderHeightConstraint: NSLayoutConstraint!
let zeroHeaderHeightConstraint: NSLayoutConstraint!
// Initsialiseerimisel või seadistamisel:
originalHeaderHeightConstraint = headerView.heightAnchor.constraint(/* ... algne kõrgus ... */)
zeroHeaderHeightConstraint = headerView.heightAnchor.constraint(equalToConstant: 0.0)
zeroHeaderHeightConstraint.isActive = false // Alguses mitteaktiivne
// Päise kokku tõmbamiseks:
NSLayoutConstraint.deactivate([originalHeaderHeightConstraint])
NSLayoutConstraint.activate([zeroHeaderHeightConstraint])
// Algse kõrguse taastamiseks:
// NSLayoutConstraint.deactivate([zeroHeaderHeightConstraint])
// NSLayoutConstraint.activate([originalHeaderHeightConstraint])
// Layouti uuendamine animatsiooniga
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
Valik sõltub sellest, kuidas constraints on seadistatud. constant kasutamine on lihtsam olemasolevate constraints puhul. Aktivatsiooni/deaktivatsiooni kasutamine on kasulik, kui vaja kiiresti vahetada erinevate constraint-ide vahel või kui mitu constraint-i määravad kõrguse.
Oluline on kutsuda välja layoutIfNeeded() (soovitavalt animatsiooni blokkis), et muudatused rakenduksid ja UI uuenduks sujuvalt.