Próbuję znaleźć wywołanie metody, które można zablokować po zmianie orientacji urządzenia. Czy jest coś identycznego z właściwością didRotateFromInterfaceOrientation, która nie jest przestarzała?Czy istnieje niezaakceptowana metoda pasująca do metody didRotateFromInterfaceOrientation
Odpowiedz
Jako iOS 8, wszystkie UIViewControllers dziedziczyć protokół UIContentContainer, którego jednym z metod jest - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
, które można (w uproszczeniu) przesłanianie tak:
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
// Stuff you used to do in willRotateToInterfaceOrientation would go here.
// If you don't need anything special, you can set this block to nil.
} completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
// Stuff you used to do in didRotateFromInterfaceOrientation would go here.
// If not needed, set to nil.
}];
}
Zauważysz, że nie ma nic szczególnego w orientacji, która wynika z projektu; Obracanie widoków w systemie iOS jest zasadniczo kompozycją określonej operacji macierzy translacji (zmiana rozmiaru widoku z jednego formatu na inny to tylko szczególny przypadek ogólnej operacji zmiany rozmiaru, z której znane są wcześniej rozmiary widoku źródłowego i docelowego) oraz operacja macierzy obrotu (który jest obsługiwany przez system operacyjny).
Zawsze możesz zgłosić się do UIDeviceOrientationDidChangeNotification
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didRotate:)
name:UIDeviceOrientationDidChangeNotification object:nil];
- (void) didRotate:(id)sender
{
UIInterfaceOrientation io = [[UIApplication sharedApplication] statusBarOrientation];
...
Dzięki za odpowiedź, Mike. To działa również, ale wolę przestrzeganie protokołów dotyczących używania powiadomień. – Brandon
Swift 3 wersja odpowiedzi fullofsquirrels męska:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
coordinator.animate(alongsideTransition: { context in
context.viewController(forKey: UITransitionContextViewControllerKey.from)
// Stuff you used to do in willRotateToInterfaceOrientation would go here.
// If you don't need anything special, you can set this block to nil.
}, completion: { context in
// Stuff you used to do in didRotateFromInterfaceOrientation would go here.
// If not needed, set to nil.
})
}
- 1. Metoda zignorowana, niezaakceptowana
- 2. Django - Kwerenda pasująca do witryny nie istnieje
- 3. Logika rozmyta pasująca do
- 4. Najlepsza przeciążona metoda pasująca do System.Threading.Timer.Timer() ma pewne nieprawidłowe argumenty.
- 5. Ścieżka Git pasująca do dowolnej nazwy katalogu
- 6. Czy istnieje metoda kliknięcia jQuery?
- 7. Czy istnieje metoda równoważna LINQ?
- 8. Czy istnieje metoda Pythona do obliczania średniej logicznej i wariancji?
- 9. didRotateFromInterfaceOrientation wypalanie Dwa razy podczas obracania
- 10. Jak mogę sprawdzić, czy nazwa pliku pasująca do wzorca istnieje w Perlu?
- 11. Czy istnieje sposób na poznanie metody wywoływania?
- 12. Czy istnieje sposób ogólny do wywołania innej metody, gdy metoda jest wywoływana w C#
- 13. Java8: Czy istnieje sposób, aby uzyskać odwołanie do metody instancji z odwołania do metody klasy?
- 14. Czy istnieje sposób dostępu do argumentów metody w Ruby?
- 15. Czy istnieje ogólny sposób synchronizowania metody asynchronicznej?
- 16. Czy istnieje odwołanie do metody do wyrzucania wyjątku?
- 17. Java Stretch Ikona pasująca do przycisku
- 18. Czy istnieje metoda blokowania hosta w WINAPI?
- 19. Jak można ustawić ISingleResult? Czy powinienem? czy istnieje lepsza metoda?
- 20. Czy istnieje metoda "upto" w języku C#?
- 21. Czy istnieje szybka metoda deklarowania funkcji inline?
- 22. Zastosowanie metody getClass() metoda
- 23. Czy istnieje taka metoda wywoływania "getBackgroundColor"?
- 24. Czy w strukturze istnieje ogólna metoda wymiany?
- 25. Czy istnieje metoda antyaliasingu dla Pythona PIL?
- 26. metoda rozszerzenia dla metody C#
- 27. Czy istnieje możliwość zastosowania ogólnej metody do listy pozycji?
- 28. Czy istnieje prostsza (jednolinijkowa) składnia do aliasów jednej metody klasy?
- 29. Czy istnieje szablon ReSharper do generowania podstawowej metody?
- 30. Czy istnieje metoda pomocnika dla pluralizacji w Railsach?
Tego właśnie szukałem. Dzięki! – Brandon
Idealne rozwiązanie ... Plaster !!! – HPM