0
votes

Comment obtenir la taille de la fenêtre dans Swift (y compris l'écran partagé iPad)

Je veux obtenir les limites de la fenêtre en tant qu'objet CGRect . Voici mon code actuel:

let screenSize : CGRect = self.view.window?.frame

J'ai trouvé ce code sur Internet, mais parfois screenSize est nul. Existe-t-il une autre option?


0 commentaires

4 Réponses :


1
votes

Vous pouvez obtenir la hauteur et la largeur séparément en tapant:

let screenSize = UIScreen.main.bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height


1 commentaires

Non, ce n'est pas mon problème. Je souhaite obtenir le cadre de la fenêtre (il sera donc affecté par la vue fractionnée de l'iPad)



0
votes

J'ai trouvé la réponse

let screenSize : CGRect = self.view.frame


0 commentaires

1
votes

UIView a une propriété appelée window , qui est appelée nil jusqu'à ce que la vue soit ajoutée à la fenêtre. Obtenez le frame lorsque la propriété window n'est pas nil . Ainsi, dans l'expérience ci-dessous, la valeur view.window n'est pas nil uniquement lors de la saisie de viewWillLayoutSubviews .

https://eunjin3786.tistory.com/96

Désolé, je n'ai pas trouvé d'exemple satisfaisant en anglais. Dans cette expérience, l'auteur a marqué le titre bleu au moment où view.window n'était pas nil .


0 commentaires

1
votes
if let window = UIApplication.shared.windows.filter({ $0.isKeyWindow }).first {
   let screenFrame = window.frame
}
You can get the sizes from the screenFrame

0 commentaires