Sobes.tech
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.