2016-06-28 6 views
0

Настройка анимации для постепенного изменения и повторения. 'viewSmall' и 'viewBig' - это UIImageViews.UIView.animateWithDuration не анимация на отдельном контроллере просмотра

view storyboard shot

class TestViewController: UIViewController { 

    @IBOutlet weak var viewBig: UIImageView! 
    @IBOutlet weak var viewSmall: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 

     animate() 
    } 

    func animate() { 
     UIView.animateWithDuration(0.5, 
            delay: 0, 
            options: [.Repeat, .Autoreverse], 
            animations: { 
            self.viewSmall.alpha = 0 
      }, 
            completion: nil) 

     UIView.animateWithDuration(0.5, 
            delay: 0, 
            options: [.Repeat, .Autoreverse], 
            animations: { 
            self.viewBig.alpha = 0 
      }, 
            completion: nil) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 

Этот код не анимировать на течение только несколько контроллеров зрения, и контроллеры вид кажется независимыми, не переходить на другие контроллеры зрения, на моей догадке. Поскольку этот код отлично работает на контроллерах представлений, подключенных к контроллеру навигационного представления.

Как я могу сделать это на независимом контроллере? Пожалуйста, помогите.

+0

"Потому что его код работает отлично" кто-код? Пожалуйста, введите полный код и подробно расскажите, чего вы хотите достичь? –

+0

Извините, исправлено. это означает «потому что этот код ...» – Minjee

+0

У меня все еще не проблема. Анимация не работает? или он не работает на каком-то определенном контроллере viewController? если это так, то покажите, что код viewController и ваш раскадровки также –

ответ

0

Обнаружено блестящее решение. Используется dispatch_after для отслеживания продолжительности и задержки.

func animate(){ 
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.0 * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), { 

     // Animate the transition 
     UIView.animateWithDuration(0.5, 
           delay: 0, 
           options: [.Repeat, .Autoreverse], 
           animations: { 
           self.viewSmall.alpha = 0 
     }, 
           completion: nil) 

     UIView.animateWithDuration(0.5, 
           delay: 0, 
           options: [.Repeat, .Autoreverse], 
           animations: { 
           self.viewBig.alpha = 0 
     }, 
           completion: nil) 
    }) 
} 

Источник от: Swift UIView animateWithDuration completion closure called immediately

Смежные вопросы