2017-04-02 4 views
-1

Xcode의 Swift Playground에서 UILabel을 클릭 할 때까지 while 루프를 대기시키고 싶습니다. 어떻게해야합니까?사용자가 UILabel을 클릭 할 때까지 기다리는 방법은 무엇입니까?

가 여기 내 루프 예를 들어

func gameLoop() { 

    while(score >= 0) { 

     let n = arc4random_uniform(3) 

     if(n == 0) { 
      opt1.text = rightStatements.randomElement() 
      opt2.text = wrongStatements.randomElement() 
      opt3.text = wrongStatements.randomElement() 
     } else if(n == 1) { 
      opt1.text = wrongStatements.randomElement() 
      opt2.text = rightStatements.randomElement() 
      opt3.text = wrongStatements.randomElement() 
     } else if(n == 2) { 
      opt1.text = wrongStatements.randomElement() 
      opt2.text = wrongStatements.randomElement() 
      opt3.text = rightStatements.randomElement() 
     } 
    } 

} 

, 난 사용자가 opt2opt1 클릭하거나, opt3 그런 다음 어떤 사용자가 클릭을 기반으로 뭔가를 할 때까지 기다려야합니다.

+0

아무 일도 일어나지 않을 때까지 메인 스레드에서 무한 루프를 실행하지 마십시오. 'UILabel'을'UIButton'으로 변경하고'IBAction'을 사용하십시오. –

+0

IBAction은 어떻게 만들 수 있습니까? –

답변

1

레이블 대신 단추를 사용하고 단추에 태그 = 1, 2 및 3을 지정하십시오. 단추에 대한 IBAction 기능을 만들고 모든 단추를 동일한 기능에 연결하십시오.

'n'변수를 전역 변수로 지정하십시오.

var n = Int() 

func nextAttempt() { 

    if(score >= 0) { 

     n = arc4random_uniform(3) 

     if(n == 0) { 
      opt1.text = rightStatements.randomElement() 
      opt2.text = wrongStatements.randomElement() 
      opt3.text = wrongStatements.randomElement() 
     } else if(n == 1) { 
      opt1.text = wrongStatements.randomElement() 
      opt2.text = rightStatements.randomElement() 
      opt3.text = wrongStatements.randomElement() 
     } else if(n == 2) { 
      opt1.text = wrongStatements.randomElement() 
      opt2.text = wrongStatements.randomElement() 
      opt3.text = rightStatements.randomElement() 
     } 
    } 
    else 
    { 
     //Score < 0 
     //Game Over 
    } 

} 


@IBAction func onButtonClick(_ sender: Any) 
{ 
switch(sender.tag) 
    { 
    case 1: 
     if (n==0) 
     { 
     //Right button tapped 
     //Update score if you want 
     } 
     else 
     { 
     self.nextAttempt() 
     } 
    case 2: 
    if (n==1) 
     { 
     //Right button tapped 
     //Update score if you want 
     } 
    else 
    { 
     self.nextAttempt() 
    } 
    case 3: 
    if (n==2) 
    { 
     //Right button tapped 
     //Update score if you want 
    } 
    else 
    { 
     self.nextAttempt() 
    } 
    } 
} 

희망이 도움이 되네요 !!