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?
4 Réponses :
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
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)
J'ai trouvé la réponse
let screenSize : CGRect = self.view.frame
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
.
if let window = UIApplication.shared.windows.filter({ $0.isKeyWindow }).first { let screenFrame = window.frame } You can get the sizes from the screenFrame