J'essaie de masquer la sous-vue d'UIStackView comme ceci:
UIViewPropertyAnimator.runningPropertyAnimator(withDuration: 2.0,
delay: 0, options: [.curveEaseOut], animations: {
self.label.isHidden = true
self.label.alpha = 0.0
self.stackView.layoutIfNeeded()
})
Cependant, l'étiquette disparaît instantanément avec l'utilisation de ce code. Je soupçonne que cela est dû à la définition de isHidden
sur true, ce qui est requis pour l'effondrement.
Existe-t-il un moyen de masquer et de réduire le sous-dossier d'UIStackView avec une animation? Ou serait-il préférable de ne pas utiliser du tout UIStackView?
Vous pouvez simplement utiliser une solution simple avec animateKeyframes
pour atténuer l'alpha, puis masquer, je pense que cela vous donnera ce dont vous avez besoin.
// showLabel est un booléen pour gérer le statut, déclarez-le chez vous
@IBAction func toggleStackLabelTapped(_ sender: UIButton) {
showLabel = !showLabel
UIView.animateKeyframes(withDuration: 1, delay: 0, options: .calculationModeLinear, animations: {
UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration: 0.8) {
self.label.alpha = (self.showLabel) ? 1 : 0
}
UIView.addKeyframe(withRelativeStartTime: 0.8, relativeDuration: 1) {
self.label.isHidden = !self.showLabel
}
})
}