Jetez un œil à UIScreen .
par exemple.
CGFloat width = [UIScreen mainScreen].bounds.size.width;
Jetez un œil à la propriété applicationFrame si vous ne voulez pas que la barre d'état soit incluse (n'affectera pas la largeur).
MISE À JOUR: Il s'avère que UIScreen (-bounds ou -applicationFrame) ne prend pas en compte l'orientation actuelle de l'interface. Une approche plus correcte serait de demander à votre UIView ses limites - en supposant que cet UIView a été automatiquement tourné par son contrôleur de vue.
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGFloat width = CGRectGetWidth(self.view.bounds);
}
Si la vue n'est pas pivotée automatiquement par le contrôleur de vue, vous devrez vérifier l'orientation de l'interface pour déterminer quelle partie des limites de la vue représente la «largeur» et la «hauteur». Notez que la propriété frame vous donnera le rect de la vue dans l'espace de coordonnées de UIWindow qui (par défaut) ne prendra pas en compte l'orientation de l'interface.