Comment changer la taille de UIView?

J’ai du mal à modifier ma hauteur UIView au lancement.

Je dois UIView et je veux une taille de l’écran * 70 et l’autre pour combler le vide.

voici ce que j’ai

@IBOutlet weak var questionFrame: UIView! @IBOutlet weak var answerFrame: UIView! let screenSize:CGRect = UIScreen.mainScreen().bounds 

et

  questionFrame.frame.size.height = screenSize.height * 0.70 answerFrame.frame.size.height = screenSize.height * 0.30 

Il n’a aucun effet sur l’application pendant l’exécution. J’utilise autolayout mais je n’ai que des contraintes de marges …

Est-ce que je fais tout faux?

Voici. cela devrait fonctionner.

 questionFrame.frame = CGRectMake(0 , 0, self.view.frame.width, self.view.frame.height * 0.7) answerFrame.frame = CGRectMake(0 , self.view.frame.height * 0.7, self.view.frame.width, self.view.frame.height * 0.3) 

Cela peut être réalisé de différentes manières dans Swift 3.0. Dernière version Août – 2017

Atsortingbuez directement les valeurs Height & Width pour une vue:

 userView.frame.size.height = 0 userView.frame.size.width = 10 

Atsortingbuer le CGRect pour le cadre

 userView.frame = CGRect(x:0, y: 0, width:0, height:0) 

Détails de la méthode:

CGRect (x: sharepoint X, y: sharepoint Y, largeur: largeur de la vue, hauteur: hauteur de la vue)

Utiliser une méthode d’extension pour CGRECT

Ajouter le code d’extension suivant dans n’importe quel fichier rapide,

 extension CGRect { init(_ x:CGFloat, _ y:CGFloat, _ w:CGFloat, _ h:CGFloat) { self.init(x:x, y:y, width:w, height:h) } } 

Utilisez le code suivant n’importe où dans votre application pour que la vue définisse les parameters de taille

 userView.frame = CGRect(1, 1, 20, 45) 

Swift 3 et Swift 4:

 myView.frame = CGRect(x: 0, y: 0, width: 0, height: 0) 

Salut créer cela étend si vous voulez. Mise à jour 2015 Swift 2.0

Créez le fichier Extends.Swift et ajoutez ce code (ajoutez la base d’importation où vous voulez changer la hauteur)

 /** Get Set x Position - parameter x: CGFloat by DaRk-_-D0G */ var x:CGFloat { get { return self.frame.origin.x } set { self.frame.origin.x = newValue } } /** Get Set y Position - parameter y: CGFloat by DaRk-_-D0G */ var y:CGFloat { get { return self.frame.origin.y } set { self.frame.origin.y = newValue } } /** Get Set Height - parameter height: CGFloat by DaRk-_-D0G */ var height:CGFloat { get { return self.frame.size.height } set { self.frame.size.height = newValue } } /** Get Set Width - parameter width: CGFloat by DaRk-_-D0G */ var width:CGFloat { get { return self.frame.size.width } set { self.frame.size.width = newValue } } 

Pour utilisation (hérite de UIView)

 inheritsOfUIView.height = 100 button.height = 100 print(view.height) 

Vous pouvez le faire dans Interface Builder:

1) Faites glisser le curseur depuis une vue de cadre (par exemple, questionFrame) vers la vue principale, dans la fenêtre contextuelle, sélectionnez “Equal heights”.

2) Ensuite, allez à la taille de l’inspecteur du cadre, cliquez sur Modifier la contrainte “Equal height to Superview”, définissez le multiplicateur sur 0,7 et appuyez sur return.

Vous verrez que la contrainte est passée de “Hauteur égale à …” à “Hauteur proportionnelle à …”.