Can anyone tell me why setting the button.setTitle(string, forState) function blanks out the UIImage?
If I comment out both lines that use the button.setTitle, the animation runs fine. When the lines are there, the animation disappears when I press the button.
The var cryButton: UIButton and the function UpdateImage refer to the same button, but I tried adding a second button and referencing the title in that, and it had the same effect. It blanks out the image.
I'm stumped :)
import UIKit
class ViewController: UIViewController {
var counter = 1
var numImages = 8
var toggle = true
var timer = NSTimer()
@IBOutlet weak var babyImage: UIImageView!
@IBOutlet weak var cryButton: UIButton!
@IBAction func UpdateImage(sender: AnyObject) {
if toggle == true {
timer = NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: Selector("doanimation"), userInfo: nil, repeats: true)
cryButton.setTitle("Stop crying", forState: UIControlState.Normal)
toggle = false
} else {
timer.invalidate()
babyImage.image = UIImage(named: "WaWa1.png")
cryButton.setTitle("Wa-Waaaaa!", forState: UIControlState.Normal)
toggle = true
}
}
func doanimation() {
babyImage.image = UIImage(named: "WaWa\(counter).png")
if (counter == (numImages)) {
counter = 1
} else {
++counter
}
}
override func viewDidLayoutSubviews() {
babyImage.center = CGPointMake(babyImage.center.x - 400, babyImage.center.y)
}
override func viewDidAppear(animated: Bool) {
UIView.animateWithDuration(2, animations: { () -> Void in
self.babyImage.center = CGPointMake(self.babyImage.center.x + 400, self.babyImage.center.y)
})
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}