Komisch, ich habe ein ähnliches Problem. Ich habe alle Ansichten aus der xib-Datei entfernt und eine Ansicht erneut hinzugefügt. Setzen Sie die Statusleiste auf "nicht angegeben", damit die Statusleiste nicht berücksichtigt wird. Wenn die Ansicht hinzugefügt wird, wird sie mit x = 0, y = 0, w = 320 h = 460 anstelle von (0,0,320,480) erstellt, wie ich es erwartet hätte. Nachdem Sie die Höhe auf 480 geändert und mit dem Eigentümer der Datei verbunden und die Farbe geändert haben, um sie in Bezug auf den Hintergrund unverwechselbar zu machen. Ich gehe davon aus, dass sich zwischen dem oberen Bildschirmrand und der Ansicht ein weißes Band befand. Ich habe meinen Code erweitert mit:
#define RECTLOG (rect) (NSLog (@ "" #rect @ "x:% fy:% fw:% fh:% f", rect.origin.x, rect.origin.y, rect.size.width, rect .size.height));
innerhalb von viewDidLoad
- (void) viewDidLoad {
[super viewDidLoad];
RECTLOG (self.view.frame);
}}
Es stellt sich heraus, dass die Ansicht so ist, wie sie von IB geladen wurde, tatsächlich (0, 20, 320, 480). Um dies zu umgehen, habe ich den Rahmen der Ansicht mit self.view.frame = CGRectMake (0, 0, 320, 480) zurückgesetzt.
Ich benutze IB 3.2.5
Ich würde gerne eine kleine Lösung für dieses Problem kennen.