Middle
Başlıqların sıfıra enməsini təmin etmək üçün hündürlük məhdudiyyətini necə dəyişdirmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Başlığı sıxmaq üçün, onun constraint yüksəkliyi sabitini 0-ə dəyişə bilərsiniz.
Auto Layout ilə nümunə:
// Başlıq yüksəkliyi üçün IBOutlet-iniz olduğunu fərz edək
@IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!
// Başlığı sıxmaq üçün:
headerHeightConstraint.constant = 0.0
// Əsas yüksəkliyi (əgər məlumdursa) geri qaytarmaq üçün:
// headerHeightConstraint.constant = originalHeaderHeight
// Avtomatik layout yeniləməsini istifadə etmirsinizsə, layout-u yeniləməyi unutmayın
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
NSLayoutConstraint.activate/deactivate nümunəsi:
// Orijinal yüksəkliyi və sıfır yüksəkliyi constraint-ləri olduğunu fərz edək
let originalHeaderHeightConstraint: NSLayoutConstraint!
let zeroHeaderHeightConstraint: NSLayoutConstraint!
// İnit və ya konfiqurasiya zamanı:
originalHeaderHeightConstraint = headerView.heightAnchor.constraint(/* ... orijinal yüksəklik ... */)
zeroHeaderHeightConstraint = headerView.heightAnchor.constraint(equalToConstant: 0.0)
zeroHeaderHeightConstraint.isActive = false // Əvvəlcə aktiv deyil
// Başlığı sıxmaq üçün:
NSLayoutConstraint.deactivate([originalHeaderHeightConstraint])
NSLayoutConstraint.activate([zeroHeaderHeightConstraint])
// Orijinal yüksəkliyi geri qaytarmaq:
// NSLayoutConstraint.deactivate([zeroHeaderHeightConstraint])
// NSLayoutConstraint.activate([originalHeaderHeightConstraint])
// Layout-u animasiya ilə yeniləyin
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
Yöntem seçimi, constraint-ləri necə qurduğunuzdan asılıdır. constant istifadə etmək, mövcud constraint-lər üçün daha sadədir. Aktivləşdirmə/deaktivləşdirmə isə, constraint-lər arasında sürətli keçid etmək və ya çoxlu constraint-lər yüksəkliyi müəyyən etdikdə faydalıdır.
layoutIfNeeded() çağırmaq (əksər hallarda animasiya blokunda) vacibdir ki, dəyişikliklər tətbiq olunsun və UI düzgün şəkildə yenilensin.