Zabawne, że mam podobny problem. Usunąłem wszystkie widoki z pliku xib i ponownie dodałem widok. Ustaw pasek stanu na „nieokreślony”, aby pasek stanu nie był dostosowany. Po dodaniu widok zostanie utworzony z x = 0, y = 0, w = 320 h = 460 zamiast (0,0,320,480), jak bym się spodziewał. Po zmianie wysokości na 480 i podpięciu go do właściciela pliku i zmianie koloru tak, aby wyróżniał się w stosunku do tła. Zauważyłem, że między górną częścią ekranu a widokiem był biały pasek. Rozszerzyłem swój kod o:
#define RECTLOG (rect) (NSLog (@ "" #rect @ "x:% fy:% fw:% fh:% f", rect.origin.x, rect.origin.y, rect.size.width, rect .size.height));
w ramach viewDidLoad
- (void) viewDidLoad {
[super viewDidLoad];
RECTLOG (self.view.frame);
}
Okazuje się, że widok jest taki, jaki jest załadowany z IB, w rzeczywistości (0, 20, 320, 480). Aby obejść ten problem, zresetowałem ramkę widoku za pomocą self.view.frame = CGRectMake (0, 0, 320, 480);
Używam IB 3.2.5
Chciałbym wiedzieć, jak to naprawić.