Procédure de programmation pour augmenter la hauteur de UIView avec Swift
À l'intérieur de l'IB, j'ai un viewController avec un segmentedControl et 2 containerViews. Dans chaque containerView j'ai un tableView. De chaque tableView j'appuie sur une fenêtre detravail. Ma mise en page automatique est de l'IB.
Une fois que je choisis un segment, je vois le correspondant tableView, je sélectionne une cellule et la bonne fenêtre detravail est poussé sur la scène.
La question est une fois la fenêtre detravail est poussé sur la segmentedControl est encore visible. J'ai décidé de cacher la segmentedControl qui fonctionne, mais il y a un grand espace vide. J'ai essayé de programmation pour augmenter la taille de la fenêtre detravail de vue, mais ce n'est pas en expansion. De ce que j'ai lu c'est parce que j'ai fait la première des contraintes dans les storyboards.
Comment puis-je obtenir par programme la fenêtre detravail de vue de l'étendre?
code:
DetailViewController: UIViewController{
override func viewDidLoad() {
super.viewDidLoad()
//this isn't increasing the view's size
self.view.frame.size.height += 20.0
//doesn't work. I get an error on the last argument
self.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height += 20.0)
//doesn't work. I get an error on the last argument
self.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.size.height += 20.0)
}
}
Erreurs:
//Error for the last argument- height: *self.view.frame.height += 20.0*
self.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height += 20.0)
Côté gauche de la mutation de l'opérateur n'est pas mutable: "hauteur" est un rendez-vous seulement
propriété
//Error for the last argument- *self.view.frame.size.height += 20.0*:
self.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.size.height += 20.0)
Ne peut invoquer à l'initialiseur de type 'CGRect" avec une liste d'arguments de
type '(x: Int, y: Int, largeur: CGFloat, hauteur: ())'
OriginalL'auteur Lance Samaria | 2017-03-24
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour créer un débouché à la hauteur de la contrainte de la vue de détail, et puis vous pouvez régler la hauteur par programme comme ceci
myHeightConstraint.constant += extraHeight
oùextraHeight
est un nombre indiquant combien grand que vous voulez la vue de détail. Vous aussi vous pouvez avoir besoin d'appelerself.view.layoutIfNeeded()
par la suite.Pour créer une prise de courant à partir d'une contrainte, de contrôle de la faire glisser à partir de la contrainte dans le plan de montage de l'éditeur (tout comme vous le feriez pour une sortie d'une UIView) dans votre code.
Vous avez raison, car vous utilisez la mise en page et les contraintes, les ajustements doivent être faits avec des contraintes aussi. Réglage des images brutes peut entraîner un comportement inattendu. Laissez-moi savoir si vous avez d'autres questions ou des difficultés.
OriginalL'auteur CoolPenguin
À l'intérieur de la
CGRect
initialiseur vous ne devriez pas utiliser+=
, juste+
.Changement:
:
Vous ne devriez pas être en train d'essayer de changer la valeur de
self.view.frame.height
à l'intérieur de l'initialiseur.Est votre point de vue de la configuration avec les contraintes?
oui, il est. Mais les contraintes sont définies dans la table de montage séquentiel. Je vais modifier le questionnement inclure les plans 3D de la mise en page avec le segmentedControl cachés et vous verrez le grand espace vide je veux augmenter la vue sur
Votre question est à propos de l'erreur qui est maintenant résolu. Vous devez créer une nouvelle question à traiter avec votre nouveau numéro si besoin (après tu fais beaucoup de recherche en premier). Mais vos contraintes vont entraîner des problèmes en essayant de changer l'image je crois.
je comprends votre point, l'erreur n'est pas résolue, mais la hauteur n'a pas augmenté. Je upvoted votre réponse car de toute façon on a corrigé l'erreur. Merci quand même bien 🙂
OriginalL'auteur rmaddy
Est-il la hauteur des contraintes pour segmentedControl, si de sorte que vous pouvez les supprimer lors du chargement de la vue de détail
OriginalL'auteur Joe
Swift 4.2
- Je créer pour vous un exemple du programme:
cette ligne de code créer un bouton sur taraudés changer la hauteur de bouton avec l'animation.
espérons que cette aide 🙂
OriginalL'auteur moraei
Utilisation de l'auto.vue.cadre.taille.hauteur = 80
OriginalL'auteur Nupur Sharma