2010-07-02 14 views
9

Próbuję mieć jeden z widoków podrzędnych na moim ekranie (posiadanym przez jeden kontroler widoku) nie obracać, gdy urządzenie obraca się. Mój kontroler widoku umożliwia rotacje tak, jak powinien, a ja próbuję zastosować obrót o 90 stopni do widoku "stacjonarnego", aby przeciwdziałać obrotowi całkowitemu.Ustawienie transformacji obrotu na UIView lub jego warstwę nie działa?

Problem polega na tym, że wszystko wydaje się obracać w każdym razie, a transformacja nie wydaje się nic robić. Próbowałem z transformacją afiniczną w widoku iz transformacją 3d na warstwie (poniżej). Metoda jest wywoływana, ale nigdy nie widzę różnicy wizualnej.

Jakieś myśli? Dzięki.

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration 
{ 
    CALayer *layer = stuckview.layer; 
    layer.transform = CATransform3DMakeRotation(90, 0, 0, 1); 
}  

Odpowiedz

26

Aby pomóc innym znaleźć tę, Dodaję kilka przeszukiwania zwroty, jak:

zapobiec UIView obracaniu

zapobiec tło UITableView obracaniu

zatrzymać obrót UIView

Zatrzymaj rotację tła UITableView


Kompletny próbki dla dowolnej orientacji:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
    { 
     switch (toInterfaceOrientation) { 
      case UIInterfaceOrientationLandscapeLeft: 
       stuckview.transform = CGAffineTransformMakeRotation(M_PI_2); // 90 degress 
       break; 
      case UIInterfaceOrientationLandscapeRight: 
       stuckview.transform = CGAffineTransformMakeRotation(M_PI + M_PI_2); // 270 degrees 
       break; 
      case UIInterfaceOrientationPortraitUpsideDown: 
       stuckview.transform = CGAffineTransformMakeRotation(M_PI); // 180 degrees 
       break; 
      default: 
       stuckview.transform = CGAffineTransformMakeRotation(0.0); 
       break; 
     } 
    } 
+0

sprawdzić i stwierdzić, że nie jest stuckview UIInterfaceOrientationPortraitUpsideDown działa w iOS 6. –

+0

jest w CALAyer lub UIView? –

+0

@AdamWaite - A UIView, jak wskazuje nazwa i opis! ;-) – nekno

4

Czy Twój kod rzeczywiście został wykonany? (Czy wdrożenie shouldAutorotateToInterfaceOrientation?)

stuckview.transform = CGAffineTransformMakeRotation(M_PI_2); 

powinno załatwić sprawę.

Uwaga: Funkcje nie pobierają radianów ani stopni.

Powiązane problemy