2012-11-11 10 views
7

Próbuję użyć właściwości CATransition 'filter z nowymi animacjami przejścia iOS 6 (CIBarsSwipeTransition, CICopyMachineTransition itd.). The CIFilter documentation mówi, że są one dostępne na iOS 6, a nic na CATransition documentation mówi, że nie można użyć właściwości .Korzystanie z przejściówek CIFILters dla CATransition

Ale nie mogę ich zmusić do pracy. Nie wiem, czy Apple po prostu nie wspomniał o niedostępności tej funkcji, czy też po prostu brakuje mi czegoś, co sprawi, że będzie działała. Oto, jak to skonfigurować:

CIFilter *transitionFilter = [CIFilter filterWithName:@"CIBarsSwipeTransition"]; 
[transitionFilter setDefaults]; 

CATransition *transition = [CATransition new]; 
transition.duration = 0.4f; 
transition.filter = transitionFilter; 

[self.view.layer addAnimation:transition forKey:kCATransition]; 

Wszelkie wskazówki są mile widziane.

Odpowiedz

3

Nie jestem pewien, czy to możliwe w systemie iOS. Z dokumentacji CATransition:

Jeśli określony, filtr musi obsługiwać zarówno kCIInputImageKey i kCIInputTargetImageKey klawiszy wejściowych i klucz kCIOutputImageKey wyjściowego.

Z (części stałe) CIFilter documentation (kopalnia nacisk)

kCIInputTargetImageKey

Kluczowym dla obiektu, który jest CIImage docelowego obrazu do przejścia. Dostępne w systemie OS X 10.5 i nowszych. Niedostępne w iOS.

Filtr istnieje i inputTargetImage jest jednym z kluczy wejściowych, ale nawet jeśli utworzyć dane rdzeń obrazu siebie i przypisać go do właściwości (która wyświetla się poprawnie w debuggera), to nadal nie dostaniesz efekt.

Tworzenie tego samego efektu na OS X jest tak proste, jak kod w pytaniu. Złożyłem to jako radar (13281399).

+0

Czy możesz podać link do dokumentacji z informacją "Niedostępny w systemie iOS?" Dokumentacje, które łączyłem w moim pytaniu, nie wspominają o tym. Zrezygnowałem z tego dawno temu i wprowadziłem własną, niestandardową implementację. Zaznaczę to jako odpowiedź, ponieważ wydaje się, że podniosłeś na to o wiele więcej niż to, że złożyłem radar. –

+1

Link dodany do odpowiedzi. Sekcja stałych znajduje się na dole. – jrturton

4

wiem, że pytanie jest dość stary, ale mam kopalnia pracuje wykonując że link

https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/CoreImaging/ci_tasks/ci_tasks.html

Sprawdź 11 kroki opisane w sekcji „Korzystanie z efektami przejścia” To działa na iOS oraz

+0

Znam tę dokumentację i wiem, że to są kroki do tworzenia pojedynczych klatek. Czy to oznacza, że ​​muszę podklasować "CATransition" i samemu wdrożyć przejście? To wydaje się całkiem bezużyteczne dla właściwości 'filter' w ogóle istnieć. –