1

Can anyone tell me why this shows the old button title for a second when reappearing?

func showSuccess(success:Bool) {

    if success == true {

        self.stage = 2 //needed to determine what method is triggered on button action

        UIView.animateWithDuration(0.4, delay: 0.0, options: .CurveEaseOut, animations: {

            self.oldView.alpha = 0

            }, completion: { finished in

                self.textLabel.text = "new text new text new text"

                self.actionButton.setTitle("BAR", forState: .Normal)

                self.reappearView(self)        
        })
    } 
}


func reappearView(sender:AnyObject) {

    self.oldView.layoutIfNeeded()

    UIView.animateWithDuration(0.4, delay: 0.0, options: .CurveEaseOut, animations: {

        self.oldView.alpha = 1

        }, completion: { finished in

    })
}

For some odd reason, the text change on the label field works fine as expected. The button will animate in with it's old title, then during the reappear animation - switch to the new title set in the completion handler of showSuccess().

I also tried to move all text changes as first part of reappearView() and then trigger the 2nd animation, same outcome.

longbow
  • 1,593
  • 1
  • 16
  • 39

0 Answers0