Spójrz na UIScreen.
np.
CGFloat width = [UIScreen mainScreen].bounds.size.width;
Spójrz na właściwość applicationFrame, jeśli nie chcesz, aby pasek stanu był włączony (nie wpłynie na szerokość).
AKTUALIZACJA: Okazuje się, że UIScreen (-bounds lub -applicationFrame) nie uwzględnia bieżącej orientacji interfejsu. Poprawniejszym podejściem byłoby zapytanie użytkownika UIView o jego granice - zakładając, że to UIView zostało automatycznie obrócone przez kontroler View.
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGFloat width = CGRectGetWidth(self.view.bounds);
}
Jeśli widok nie jest automatycznie obracany przez View Controller następnie trzeba będzie sprawdzić orientację interfejsu, aby określić, która część widoku granicach oznacza „szerokość” i „wysokość”. Zwróć uwagę, że właściwość frame daje ci podgląd widoku w przestrzeni współrzędnych UIWindow, która (domyślnie) nie uwzględnia orientacji interfejsu.
Czy szerokość ekranu, szerokość dostępnej przestrzeni aplikacji (bez paska systemowego) lub szerokość konkretnego widoku, którego szukasz? – VdesmedT
hrmm Nie jestem pewien. Chyba chciałem szerokości urządzenia (tj. w ipad 768 dla szerokości portretu i 1024 dla szerokości krajobrazu), ale self.view.bounds wydawało się to satysfakcjonować. zobacz mój komentarz poniżej – foreyez
Zobacz [to bardziej wyczerpująca odpowiedź] (http://stackoverflow.com/a/7905540/17339), który uwzględnia orientację urządzenia. –