2014-12-12 2 views
0

iOS 개발을 처음 사용합니다. 나는 슬라이더를 다루는 법을 배우기로 결정했다. 그러나, 나는 약간 어려움을 겪고있다.Swift에서 문장이 렌더링되지 않는 경우?

그래서 슬라이더가 최소 일 때 표시되는 텍스트는 "최소 슬라이더"이고 최대 값은 같을 것이라고 일부 코드를 작성했습니다.

import UIKit 

class ViewController: UIViewController { 

@IBOutlet var displayText: UILabel! 
@IBOutlet var editText: UITextField! 
@IBOutlet var slider: UISlider! 
var temp = "Text Goes Here" 

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 changeText(sender: AnyObject) { 
    temp = editText.text 
    displayText.text = temp 
    editText.text = "" 
} 

@IBAction func textSize(sender: AnyObject) { 
    if (slider.value == 0){ 
     displayText.text = "Min Slider" 
    } 
    if (slider.value == 2){ 
     displayText.text = "Max Slider" 
    } 
    else{ 
     displayText.text = temp 
    } 
} 
} 

그러나 슬라이더가 분에있을 때 텍스트는 표시되지 않습니다. 그러나 그것은 최대와 함께 작동합니다. 그래서, 나는 시도 :

@IBAction func textSize(sender: AnyObject) { 
    if (slider.value == 2){ 
     displayText.text = "Max Slider" 
    } 
    if (slider.value == 0){ 
     displayText.text = "Min Slider" 
    } 
    else{ 
     displayText.text = temp 
    } 
} 

을 이제 "최소 슬라이더"작동하지만 "최대 슬라이더를". 첫 번째 if 문이 렌더링되지 않는 것처럼 보입니다.

도움이 될 것입니다.

if (slider.value == 0){ 
    displayText.text = "Min Slider" 
} 

의 첫 번째 예에서

답변

4

슬라이더 값이 최소 인 경우 if 분기 실행하고

if (slider.value == 2){ 
    displayText.text = "Max Slider" 
} 
else{ 
    displayText.text = temp 
} 

else 분기 정도로 텍스트 바로 덮어 . 당신이 아마 원하는 것은 코드에서 02을 "매직 넘버"를 방지하기 위해

if (slider.value == 0){ 
    displayText.text = "Min Slider" 
} 
else if (slider.value == 2){ // "else if" here! 
    displayText.text = "Max Slider" 
} 
else{ 
    displayText.text = temp 
} 

이상

if (slider.value == slider.minimumValue) { 
    displayText.text = "Max Slider" 
} else if (slider.value == slider.maximumValue) { 
    displayText.text = "Min Slider" 
} else { 
    displayText.text = temp 
} 

입니다.

+0

감사합니다. 정말 도움이되었습니다. – safaiyeh

1

if가 실행 중입니다. 문제는 두 번째 if else 절이 또한 실행되고 있다는 것입니다.

관련 문제