Dai uno sguardo allo UIScreen.
es.
CGFloat width = [UIScreen mainScreen].bounds.size.width;
Date un'occhiata alla proprietà applicationFrame se non si desidera che la barra di stato incluso (non influenzerà la larghezza).
UPDATE: Si scopre che UIScreen (-bounds o -applicationFrame) non tiene conto dell'orientamento dell'interfaccia corrente. Un approccio più corretto sarebbe chiedere al tuo UIView i suoi limiti - presumendo che questo UIView sia stato automaticamente ruotato dal suo View controller.
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGFloat width = CGRectGetWidth(self.view.bounds);
}
Se la vista non è in fase di auto-rotazione da parte del controllore View allora si avrà bisogno di controllare l'orientamento di interfaccia per determinare quale parte dei limiti vista rappresenta il 'width' e 'height'. Si noti che la proprietà frame fornirà il rect della vista nello spazio delle coordinate dell'UIWindow che (per impostazione predefinita) non prenderà in considerazione l'orientamento dell'interfaccia.
fonte
2010-09-07 00:57:46
è la larghezza dello schermo, la larghezza dello spazio di applicazione disponibile (senza la barra di sistema) o la larghezza di una vista particolare che state cercando? – VdesmedT
hrmm non sono sicuro. Credo che volevo solo la larghezza del dispositivo (cioè in ipad 768 per la larghezza verticale e 1024 per la larghezza orizzontale) ma self.view.bounds sembrava soddisfare questo. vedere il mio commento sotto – foreyez
Vedere [questa risposta più completa] (http://stackoverflow.com/a/7905540/17339) che tiene conto dell'orientamento del dispositivo. –