2009-10-04 12 views

Odpowiedz

1

To jest to, co możesz wypróbować.

Jeśli chcesz zmienić orientację widoku podczas dotykania na widoku, a następnie wykonaj kroki

  1. Wdrożenie metody touchesBegan wewnątrz widoku.

  2. W metodzie touchesBegan sprawdzenia aktualnej orientacji urządzenia, [[UIDevice currentDevice] orientation];

  3. Jeśli chcesz zmienić orientację następnie użyć metody CGAffineTransformation na widoku jak viewRef.transform = CGAffineTransformMakeRotation(angle);

8

Jeśli funkcja geometrię twoich elementów interfejsu użytkownika w Konstruktorze interfejsów, a następnie upewnij się, że ustawiłeś atrybuty AUTOSizing w Inspektorze rozmiarów (Cmd + 3). Następnie możesz zobaczyć, jak widok będzie wyglądał po obróceniu, klikając mały przycisk "Obróć" w lewym górnym rogu paska tytułowego widoku w Konstruktorze interfejsu.

Kiedy już wszystko skonfigurować, po prostu zastąpić następującą metodę w swojej ViewController:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation) 
{ 
    return true; 
} 

Teraz w symulatorze, można obrócić wszystko czego chcesz i twój UI będzie auto-adaptacji.

+0

Gees, nie mogłem uwierzyć, jakie to proste! :) To powinno być oznaczone jako poprawna odpowiedź. Dzięki. – BruceHill

1

Tak więc każdy wie, że jest teraz na poglądach Transform obiektu:

View.Transform.Rotate(3.14159f * 0.5f); 

Dla wszystkich dotnet facetów takich jak ja, które nie chcą korzystać z tego, co jest CGAffineTransform, myślenie będzie przerwa inne rzeczy , po prostu spróbuj. Świetnie sprawdziła się w mojej instancji. Obracałem NavigationController.View i wszystko w nim jest idealne.

+0

to tylko obraca jeden określony widok, jeśli znajduje się wewnątrz UINavigationController, pasek sterowania nawigacji będzie po niewłaściwej stronie ekranu. –