Schauen Sie sich UIScreen an .
z.B.
CGFloat width = [UIScreen mainScreen].bounds.size.width;
Sehen Sie sich die applicationFrame-Eigenschaft an, wenn die Statusleiste nicht enthalten sein soll (die Breite wird nicht beeinflusst).
UPDATE: Es stellt sich heraus, dass UIScreen (-bounds oder -applicationFrame) die aktuelle Ausrichtung der Benutzeroberfläche nicht berücksichtigt. Ein korrekterer Ansatz wäre, Ihr UIView nach seinen Grenzen zu fragen - vorausgesetzt, dieses UIView wurde von seinem View-Controller automatisch gedreht.
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGFloat width = CGRectGetWidth(self.view.bounds);
}
Wenn die Ansicht vom View Controller nicht automatisch gedreht wird, müssen Sie die Ausrichtung der Benutzeroberfläche überprüfen, um festzustellen, welcher Teil der Ansichtsgrenzen die 'Breite' und die 'Höhe' darstellt. Beachten Sie, dass die Rahmeneigenschaft das Rechteck der Ansicht im Koordinatenraum des UIWindow anzeigt, wobei (standardmäßig) die Ausrichtung der Benutzeroberfläche nicht berücksichtigt wird.