2016-10-21 4 views
-1

저는 Xcode/Swift를 처음 접했고 더하기 버튼과 마이너스 버튼을 만진 금액을 최대 및 최소로 설정하는 방법을 알고 싶습니다. 기존 코드가 아래에 있습니다. notifyBeforeAvailabilty 나는 1-20에서 가고 싶고 ratePerMinute는 $ 0.00에서 $ 15.00로 가고 싶다.증가 버튼의 최대/최소

var notifyBeforeAvailability: Int! 
var ratePerMin: Float! 


notifyBeforeAvailability = 1 
updateNotifyBeforeAvailability() 
ratePerMin = 0.10 
updateRatePerMin() 


@IBAction func notifyBeforeAvailabilityPlus(sender: AnyObject) { 
    notifyBeforeAvailability = notifyBeforeAvailability + 1 
    updateNotifyBeforeAvailability() 
} 
@IBAction func notifyBeforeAvailabilityMinus(sender: AnyObject) { 
    notifyBeforeAvailability = notifyBeforeAvailability - 1 
    updateNotifyBeforeAvailability() 
} 
func updateNotifyBeforeAvailability() { 
    lblNotifyTime.text = String(notifyBeforeAvailability) + "min" 
} 


@IBAction func ratePerMinPlus(sender: AnyObject) { 
    ratePerMin = ratePerMin + 0.10 
    updateRatePerMin() 
}  
@IBAction func ratePerMinMinus(sender: AnyObject) { 
    ratePerMin = ratePerMin - 0.10 
    updateRatePerMin() 
} 
func updateRatePerMin() { 
    let currentValue = ratePerMin 
    let current_string = String.localizedStringWithFormat("%.2f", currentValue) 
    lblYourRate.text = "$" + current_string 
} 

답변

1

당신은 값을 클램핑 min & max를 사용할 수 있습니다. 뭔가 같이 : 또한

notifyBeforeAvailability = min(max(1, notifyBeforeAvailability + 1), 20) 
// In this example 1 & 20 are your bounds 
// set the others accordingly... 

, 당신이 경우 당신이 UIStepper 컨트롤을 사용하고 ... 그런데 NSNumberFormatter

을 이용하여 형식 번호를 자신에게 피할 수하는와 함께 (minimumValue & maximumValue있다 stepValue) 당신을위한 한계를 다루는 속성들 ...

+0

정말 고마워, 완벽하게 작동했습니다. 아니 UIStepper 그냥 일반 버튼. NSNumberFormatter 부분에 대해 잘 모르겠다. 사용해야 할 부분이 무엇인가? 나는 일종의 초보자이다. –

+0

@jessicamele 네, 'NSNumberFormatter' 확실히 사용해야합니다. 그것에 관한 많은 문서를 찾을 수 있습니다. 해피 코딩! – Alladinian

0

알라딘의 대답은 옳다. 그러나 나는 var에서 사용 된 set을 선호하며 거기에서 함수를 호출한다.

var notifyBeforeAvailability : Int = 1 { 

    didSet { 

     if oldValue < 1 { 

      self.notifyBeforeAvailability = 1 
     } 
     if oldValue > 20 { 

      self.notifyBeforeAvailability = 20 
     } 

     updateNotifyBeforeAvailability() 

    } 

} 

var ratePerMin : Float = 0.10 { 

    didSet{ 

     if newValue < 0.0{ 

      self.ratePerMin = 0.0 
     } 
     if newValue > 15.0 { 

      self.ratePerMin = 15.0 
     } 
     print(newValue) 
     updateRatePerMin() 
    } 

} 
@IBAction func notifyBeforeAvailabilityPlus(sender: AnyObject) { 
    notifyBeforeAvailability += 1 
} 
@IBAction func notifyBeforeAvailabilityMinus(sender: AnyObject) { 
    notifyBeforeAvailability -= 1 
} 
func updateNotifyBeforeAvailability() { 
    lblNotifyTime.text = String(notifyBeforeAvailability) + "min" 
} 


@IBAction func ratePerMinPlus(sender: AnyObject) { 
    ratePerMin += 0.10 
} 
@IBAction func ratePerMinMinus(sender: AnyObject) { 
    ratePerMin -= 0.10 
} 
func updateRatePerMin() { 
    let currentValue = ratePerMin 
    let current_string = String.localizedStringWithFormat("%.2f", currentValue) 
    lblYourRate.text = "$" + current_string 
} 
+0

덕분에 @Rroobb이 방법으로 그것을하는 데 어떤 이점이 있습니다. 나는 여기에 초보자가 친절하다고 말했기 때문에. –