简体   繁体   中英

Cannot get closure syntax to work in swift 4

I've tried every syntax variation that I can, but the completion handler always activates before the end of the animation. I think I'm supposed to replace Bool with something else?

UIView.transition(with: swipeForPicturesIndicator,
                              duration: 1,
                              options: .curveEaseIn,
                              animations: {
                                self.swipeForPicturesIndicator.alpha = 0
            },
                              completion: { (Bool) -> Void in
                self.swipeForPicturesIndicator.isHidden = true
                self.swipeForPicturesIndicator.alpha = 0.8
            })

The Bool value indicates wether the animation was finished when the completion block was called. If that value is false it means your animation was interrupted.

You should use probably animate instead of transition

    UIView.animate(withDuration: 1,
                   delay: 0,
                   options: .curveEaseIn,
                   animations: {
      self.swipeForPicturesIndicator.alpha = 0
    }) { (completed) in

      /* Optionally check if animation finished */

      self.swipeForPicturesIndicator.isHidden = true
      self.swipeForPicturesIndicator.alpha = 0.8
    }

Try this

self.swipeForPicturesIndicator.alpha = 0
UIView.transition(with: swipeForPicturesIndicator,
                              duration: 1,
                              options: .curveEaseIn,
                              animations: {

                self.swipeForPicturesIndicator.alpha = 0.8

            },
                              completion: nil)

You may want to use animate instead of transition:

UIView.animate(withDuration: 1, delay: 0, options: .curveEaseIn, animations: { 
        self.swipeForPicturesIndicator.alpha = 0
    }) { (success) in
        self.swipeForPicturesIndicator.isHidden = true
        self.swipeForPicturesIndicator.alpha = 0.8
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM