Problem z orientacją urządzenia i UIView podczas uruchamiania
Pracuję nad projektem, w którym po naciśnięciu przycisku przez użytkownika zostanie odtworzone wideo, muszę zaprogramować tę aplikację dla wszystkich orientacji. Dodałem zdjęcia jako tło dla przycisków, którym przypisano położenie tych przycisków, w zależności od rozmiaru tego superviewu:
button1.frame = CGRectMake(0.15 * (self.view.frame.size.width),0.15 * (self.view.frame.size.height), 0.2 * (self.view.frame.size.width), 0.2 * (self.view.frame.size.height));
Kiedy uruchamiam aplikację na portrecie, jej widok jest w porządku, a także po obróceniu działa prawidłowo:
Ale jeśli uruchomię aplikację w krajobrazie, wyświetli się następujący widok:
Użyłem dużo kodu do zmiany rozmiarów widoków i podstron:
-(void) viewDidLoad
{
...
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin |
UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
[self.view setAutoresizesSubviews:YES];
button1.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin |
UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
...
}
oraz w didRotateFromInterfaceOrientation () i willRotateToInterfaceOrientation ():
...
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin |
UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
[self.view setAutoresizesSubviews:YES];
button1.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin |
UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
...
Podałem również TAK, aby zwrócić w shouldAutoRotate (). Czego mi tutaj brakuje? Każda pomoc zostanie doceniona.