2015-08-28 3 views
0

Я создал UITextView текст в качестве маски для фона изображения для цвета текста динамически по отношению к изображению за помощью функции maskview введен с прошивкой 8.Как добавить эффект перехода Fade к maskview iOS 8?

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

Другими словами, как добавить анимацию перехода в операцию маскировки?

Я действительно использовал код ниже, но не смог интегрировать в него анимацию.

self.view.maskView = self.textView 
+0

Вы пробовали обернуть его в блок анимации? https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/clm/UIView/animateWithDuration:delay:options:aimations:completion: –

ответ

0

Вы должны установить для textView alpha значение 0.0, установить его как maskView, а затем создать анимацию, которая устанавливает альфа 1.0.

self.textView.alpha = 0; 
self.view.maskView = self.textView; 
[UIView animateWithDuration:0.5 animations:^{ 
      maskView.alpha = 1.0; 
     }]; 
+0

Это решение также работает – memetcircus

+0

By используя это, я могу избавиться от эффекта вспышки, когда выполняется self.view.maskView = self.textView. – memetcircus

0

Использование UIViewAnimationOptionTransitionCrossDissolve анимации свойства с вашей точки зрения, это даст U эффектом постепенного изменения

[UIView transitionWithView:"yourView" 
         duration:0.3f 
         options:UIViewAnimationOptionTransitionCrossDissolve 
        animations:^{ 

         //animation code 
        } completion:nil]; 
+0

спасибо, что работает. – memetcircus

0

Я объединил два решения поставленных здесь для того, чтобы добиться того, что я ищу, но не может избежать эффект вспышки произошел после self.view.maskView = self.textView назначение

UIView.transitionWithView(self.textView, duration: 1.0, options:UIViewAnimationOptions.TransitionFlipFromTop, animations: { 

     self.view.maskView = self.textView 
     self.view.maskView.alpha = 0.0 
     self.view.maskView.alpha = 1.0 

     }, completion: nil 
    )