Changing an image with a delay for the past couple of hours I was trying to change an image in Xcode with a delay. I have tried achieving this using the following code:
UIImageView.animate(withDuration: 1, delay: 2, options: [], animations: {
    self.TapTap_intro.image = UIImage(named: "Second TapTap")
}, completion: nil)}

The problem while using this code is that it appears to not respect the delay and change the image immediately. 
Could anyone please explain me what am I doing wrong and how could I possibly fix this issue?  

To make a change without animation , there is no need to use UIView.animate You can dispatch it after some delay
 DispatchQueue.main.asyncAfter(deadline: .now() + 2 ) {
     self.TapTap_intro.image = UIImage(named: "Second TapTap")
 }


DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
    // Do your thing
}


Use a timer instead of animate: 
let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(changeImage), userInfo: nil, repeats: false)

And create a function to change the image: 
func changeImage() {
   self.TapTap_intro.image = UIImage(named: "Second TapTap")
}