2016-06-12 2 views
-1

두 개의 숫자를 비교 중이며 두 개의 숫자가 같지 않으면 카운터가 1 올라갑니다. 그러나 레이블이 업데이트되지 않고 시작 단추가 회색으로 표시됩니다. 두 개의 숫자가 동일해질 때까지 버튼이 회색으로 표시됩니다.빠른 단추 회색으로 표시됨

import UIKit 

enum modes { 
case start 
case cancel 
} 

class ViewController: UIViewController { 

    var mode: modes = modes.start 
    var num1: Int = 0 
    var num2: Int = 1 
    var count: Int = 0 
    @IBOutlet weak var start: UIBarButtonItem! 
    @IBOutlet weak var label: UILabel! 
    @IBOutlet weak var countLabel: UILabel! 

    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. 
    } 

    @IBAction func startClicked(sender: AnyObject) { 
     if (mode == modes.start) { 
      mode = modes.cancel 
      start.title = "cancel" 
      checkNums() 
     } else if (mode == modes.cancel) { 
      mode = modes.start 
      start.title = "start" 
      num1 = 0 
      num2 = 1 
     } 
    } 

func checkNums() { 
    while (num1 != num2) { 
     let temp: UInt32 = 100000 
     num1 = Int(arc4random_uniform(temp)) 
     num2 = Int(arc4random_uniform(temp)) 
     print("\(num1) and \(num2)") 
     update() 
    } 

    func update() { 
     count += 1 
     label.text = "\(num1) and \(num2)" 
     countLabel.text = "\(count)" 
    } 
} 

도와주세요! 감사합니다.

+0

대신에 UICountingLabel을 사용할 수 있습니다 당신은 버튼의 속성을 사용할 수 봤어? 예 : myButton.enabled = false로 설정하면 비활성화됩니다. – Array

+0

@Array 예, 문제는 두 값을 비교하는 동안 프로그램이 업데이트되지 않는다는 것입니다. 마지막 결과 만 업데이트합니다. – Asada

답변

0

당신은 UILabel의

+0

안녕하세요, checkNums()를 업데이트했습니다. 내가 여기서 쓴 것 바로 전에 그것을 바 꾸었습니다. – Asada

+0

하자 온도 : UINT32 = 100000 NUM1 = Int 인 (arc4random_uniform (임시)) NUM2 = Int 인 코드의 이 라인은 새로운 난수를 생성 할 때마다로의 viewDidLoad() –

+0

에 있어야합니다 (arc4random_uniform (임시)) . 그리고 저는 여러분의 목표가 두 개의 난수를 취하여이 두 값이 동일해질 때까지 카운터를 증가시키는 것으로 생각합니다. –

0

num1 및 num2 값을 어디에서 업데이트 할 수 있는지 알 수 없습니다. 정확히 무엇을 달성하려고하는지 모르지만 업데이트 기능에서 두 숫자에 대한 새로운 값을 설정해야한다고 생각합니다.

+0

두 개의 임의의 숫자를 얻은 다음 비교해 보았습니다.하지만 여기에 작성하기 전에 새로운 값을 설정했습니다. 나는 그것이 더 명확 할 것이라고 생각했다. 혼란 스럽습니다. – Asada

+0

어느 쪽이든, 업데이트 기능 내에서 값을 변경해야합니다. 그렇지 않으면 앱이 영원히 멈추게됩니다. – Westside

+0

나는 단지 문제를 해결할 수 있지만 여전히 문제가있다. 마지막 결과에 대한 레이블을 갱신합니다. – Asada

관련 문제