2015-10-30 4 views
2

Я пытаюсь оживить слой до бесконечно мигающего (исчезает и исчезает, пока свойство isBlinking не переключается на false), моя попытка заключается в следующем, но, похоже, это не работает правильно, я могу наблюдать немного сбой каждые пару миганий. Я также хочу, чтобы слой исчезал, чтобы быть полностью непрозрачным, когда свойство установлено в false, так что нет никаких резких изменений внезапной непрозрачности, но по какой-то причине мой код тоже не работает для этого.Мигающий эффект с fadeIn/fadeOut CABasicAnimation

var isBlinking: Bool = false { 
    didSet { 
     if !isBlinking { 
      layer.removeAllAnimations() 
      let fadeIn = CABasicAnimation(keyPath: "opacity") 
      fadeIn.toValue = 1 
      fadeIn.duration = 1 
      layer.addAnimation(fadeIn, forKey: nil) 
      return 
     } 

     let fadeOut = CABasicAnimation(keyPath: "opacity") 
     fadeOut.fromValue = 1 
     fadeOut.toValue = 0.1 
     fadeOut.duration = 1 

     let fadeIn = CABasicAnimation(keyPath: "opacity") 
     fadeIn.fromValue = 0.1 
     fadeIn.toValue = 1 
     fadeIn.duration = 1 
     fadeIn.beginTime = 1 

     let group = CAAnimationGroup() 
     group.duration = 2 
     group.repeatCount = Float.infinity 
     group.animations = [fadeOut, fadeIn] 

     layer.addAnimation(group, forKey: nil) 
    } 
} 

Я бы по достоинству оценил любые рекомендации в swift или obj-c. Благодаря!

ответ

0

для fromValues ​​и toValues ​​должны быть NSNumber

fadeIn.fromValue = NSNumber(float: 0.1) 
    fadeIn.toValue = NSNumber(float: 1.0)