2011-09-25 16 views

Odpowiedz

18

Tak, rzeczywiście, istnieje taki sposób. To jest tak:

[UIView setAnimationsEnabled:NO]; 
// Animations happen here 
[UIView setAnimationsEnabled:YES]; 

... to spowoduje wyłączenie zarówno animacje UIView wyzwalane poprzez bloki i animacji wyzwalane przy użyciu starych metod kroki/końcowe.

To powiedziawszy, zakładam, że twoja trzecia biblioteka jest wstępnie skompilowana, w przeciwnym razie możesz zmodyfikować źródło bezpośrednio: jest oczywiście możliwe, że robi coś dziwnego i animuje w inny sposób, więc twój przebieg może się różnić w zależności od tego rozwiązania .

Nie spowoduje to wyłączenia zmian wprowadzanych w blokach animacji: od razu stanie się proste. W przeciwnym razie ryzykujesz, że coś złego się wydarzy, ponieważ twój zewnętrzny API będzie zakładał, że widoki nie są prawdziwe.

3

Na urządzenia z systemem iOS 7 i nowszym jest to UIView's +performWithoutAnimation:.

Należy pamiętać, że performWithoutAnimation jest przydatne do natychmiastowego wykonania zmiany, gdy znajdujesz się w bloku animacji, ale nie wyłącza połączeń animacyjnych wykonanych w zagnieżdżonym bloku, więc użyj go dla wygody, ale nie jest tak solidny jak setAnimationsEnabled oryginalna odpowiedź.

Powiązane problemy