我的重置按钮需要2次点击重置小狗的位置而不是1.我想知道我错在哪里。另外,当我在重置后再次点击tapButton时,小狗会回到重置之前的位置。任何想法为什么会发生?在Swift中,动作需要2次点击而不是1次
我很新,所以我可能会把一些东西放在错误的地方。
var tapsCount = 0
var countdownNumber = 10
var Timer : NSTimer = NSTimer()
class ViewController: UIViewController, ADBannerViewDelegate {
@IBOutlet weak var puppy: UIImageView!
@IBOutlet weak var secondsLeft: UILabel!
@IBOutlet weak var tapsCounter: UILabel!
@IBOutlet weak var currentHighScore: UILabel!
@IBOutlet weak var colon: UILabel!
@IBOutlet weak var Banner: ADBannerView!
@IBOutlet weak var endMessage: UILabel!
@IBAction func tapButton() {
if tapsCount == 0 {
Timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("UpdateTimer"), userInfo: nil, repeats: true)
} else {
}
tapsCount = tapsCount+1
tapsCounter.text = "\(tapsCount)"
if countdownNumber<0 {
secondsLeft.text = ""
tapsCounter.text = ""
} else {
//-------moving the puppy----------------------
UIView.animateWithDuration(0, delay: 100, options: UIViewAnimationOptions.CurveLinear, animations: {
self.puppy.alpha = 1
self.puppy.center.y = self.puppy.center.y + 1 //this will change Y position of your imageView center every time you press button
}, completion: nil)
if self.puppy.center.y >= 131 {
puppy.center.y = 131
}
if self.puppy.center.y <= -41 {
puppy.center.y = -41
}
}
}
@IBAction func resetButton() {
tapsCount = 0
countdownNumber = 10
colon.text = ":"
Timer.valid
secondsLeft.text = "10"
tapsCounter.text = "0"
endMessage.text = ""
Timer.invalidate()
puppy.frame = CGRectMake(187, 325, puppy.frame.size.width, puppy.frame.size.height);
}
func UpdateTimer() {
secondsLeft.text = String(countdownNumber--)
if countdownNumber == (-1) {
secondsLeft.text = ""
colon.text = ""
var finalScore = tapsCount
var highest = currentHighScore.text
tapsCounter.text = ""
} else if countdownNumber<(0) {
Timer.invalidate()
secondsLeft.text = ""
tapsCounter.text = ""
} else {
}
}
override func viewDidLoad() {
Banner.hidden = true
Banner.delegate = self
self.canDisplayBannerAds = true
secondsLeft.text = String(countdownNumber)
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.
}
func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
return true
}
func bannerViewDidLoadAd(banner: ADBannerView!) {
Banner.hidden = false
}
}
包含复位按钮的代码的主要部分是在这里:
class ViewController: UIViewController, ADBannerViewDelegate {
@IBAction func resetButton() {
tapsCount = 0
countdownNumber = 10
colon.text = ":"
Timer.valid
secondsLeft.text = "10"
tapsCounter.text = "0"
endMessage.text = ""
Timer.invalidate()
puppy.frame = CGRectMake(187, 325, puppy.frame.size.width, puppy.frame.size.height);
}
}
那'延迟:100'可能是有问题的.. – jtbandes
你为按钮设置了哪个事件? – iRiziya