Погляньте на UIScreen .
напр.
CGFloat width = [UIScreen mainScreen].bounds.size.width;
Погляньте на властивість applicationFrame, якщо ви не хочете, щоб рядок стану був включений (це не вплине на ширину).
ОНОВЛЕННЯ: Виявляється, UIScreen (-bounds або -applicationFrame) не враховує поточну орієнтацію інтерфейсу. Більш правильним підходом було б запитати ваш UIView про його межі - припускаючи, що цей UIView був автоматично обертаний його контролером View.
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGFloat width = CGRectGetWidth(self.view.bounds);
}
Якщо подання не обертається автоматично контролером перегляду, вам потрібно буде перевірити орієнтацію інтерфейсу, щоб визначити, яка частина меж вигляду представляє "ширину" та "висоту". Зверніть увагу, що властивість frame дасть вам прямий вигляд у просторі координат вікна UIWindow, який (за замовчуванням) не враховує орієнтацію інтерфейсу.