J'essaie de redimensionner une vue en vue du contrôleur. La valeur par défaut de la vue est de 60 sur le bouton Appuyez sur I Modifier la hauteur de la vue. Lorsque je le contrôle en mode de débogueur, il affiche la hauteur de la nouvelle valeur, mais après quelques lignes ou dans une autre fonction, elle soit automatiquement définie à la valeur par défaut de 60.
@IBAction func confirmButtonWasPressed(_ sender: Any) { if confirmButton.titleLabel?.text == "Confirm pickup location" { if !(pickupLocationField.text?.isEmpty ?? false) && originLocation != nil { searchesShadowView.frame.size.height = 115 var imageView = UIImageView(); var image = UIImage(named: "work25"); imageView.image = image; dropoffLocationField.rightView = imageView; dropoffLocationField.rightViewMode = UITextField.ViewMode.always } else { showToast(with: "Select pick up location") } } }
4 Réponses :
Tout d'abord, vous devez connecter iboutlet code> de la contrainte de hauteur à partir du constructeur d'interface code>, puis vous pouvez modifier le
constante code> de la contrainte de hauteur comme celle-ci - >
@IBAction func confirmButtonWasPressed(_ sender: Any) {
if confirmButton.titleLabel?.text == "Confirm pickup location" {
if !(pickupLocationField.text?.isEmpty ?? false) && originLocation != nil {
// You can change the value of the constraint
searchesShadowHeightConstraint.constant = 115
var imageView = UIImageView()
var image = UIImage(named: "work25")
imageView.image = image
dropoffLocationField.rightView = imageView
dropoffLocationField.rightViewMode = .always
} else {
showToast(with: "Select pick up location")
}
// Then you should update the layout
view.layoutIfNeeded()
}
Vous devez créer Iboutlet de contraintes de hauteur de SearchSeSshadowview.
searchesShadowView.translatesAutoresizingMaskIntoConstraints = false
Essayez avec ce code ci-dessous.
Comment avez-vous défini la hauteur de la vue? Avez-vous utilisé l'interface Builder ou par programme?