2015-04-10 7 views
0

Я пытаюсь установить фильтр в CATransition. То, что кажется так просто оказалось проблематично - это, кажется, что свойство фильтра игнорируется CATransition и я остался с эффектом перепыла по умолчаниюCATransition с фильтром в iOS

UIImage *start = [UIImage imageNamed:@"start"]; 
UIImage *target = [UIImage imageNamed:@"target"]; 

CIImage *startImg = [CIImage imageWithCGImage:start.CGImage]; 
CIImage *endImg = [CIImage imageWithCGImage:target.CGImage]; 

CIFilter *filter = [CIFilter filterWithName:@"CICopyMachineTransition" keysAndValues: 
        @"inputImage" , startImg, 
        @"inputTargetImage" , endImg, 
        @"inputTime" , @1.0, nil]; 

CATransition *transition = [CATransition new]; 

transition.duration = 1.75; 
transition.filter = filter; 

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

self.imageView.image = target; 

ответ

0

я столкнулся с чем-то подобным, и это пост (?!) помог мне:

Using transition CIFilters for CATransition

в принципе, я пытался использовать комбинированный фильтр, который был недоступен на версии IOS я был запущен, но он взял чтение через этот пост, чтобы получить меня в документы, чтобы понять это все вон.

Надеюсь, что вас направит в правильном направлении.

UPDATE:

Глядя на это снова, я задаюсь вопросом, если ваша проблема здесь:

CATransition *transition = [CATransition new]; 

Вы не должны называть селектор анимации вместо этого?

CATransition *transition = [CATransition animation]; 

Я не уверен, что означает «новое» в этом случае или если оно будет правильно инициализироваться.

+0

Спасибо, но я не думаю, что это так. CICopyMachineTransition поддерживается с iOS 6 – Rizon