Spójrz na UIScreen .
na przykład.
CGFloat width = [UIScreen mainScreen].bounds.size.width;
Spójrz na właściwość applicationFrame, jeśli nie chcesz dołączać paska stanu (nie wpłynie to na szerokość).
UPDATE: Okazuje się, że UIScreen (-bounds lub -applicationFrame) nie uwzględnia bieżącej orientacji interfejsu. Bardziej poprawnym podejściem byłoby poproszenie twojego UIView o jego granice - zakładając, że ten UIView został automatycznie obrócony przez jego kontroler widoku.
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGFloat width = CGRectGetWidth(self.view.bounds);
}
Jeśli widok nie jest automatycznie obracany przez kontroler widoku, będziesz musiał sprawdzić orientację interfejsu, aby określić, która część granic widoku reprezentuje „szerokość” i „wysokość”. Zauważ, że właściwość frame da ci prostokątny widok w przestrzeni współrzędnych UIWindow, który (domyślnie) nie będzie uwzględniał orientacji interfejsu.