2016-10-21 14 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... 

また、あなたがところでNSNumberFormatter

を利用することにより、フォーマット番号に自分を避けることができ...あなたはUIStepperコントロールを使用している場合は、minimumValue & maximumValueは(一緒にありますstepValue)あなたのための制限を処理するプロパティ...

+0

ありがとうございました。 UIStepperは通常のボタンではありません。私はNSNumberFormatterの部分についてはわかりません、私は何を使用する必要がありますか?私は一種の初心者です。 –

+0

@jessicameleはい、「NSNumberFormatter」は間違いなくあなたが使用すべきものです。あなたはそれについてもたくさんのドキュメントを見つけることができます。ハッピーコーディング! – Alladinian

0

アレディーニアの答えは正しいですが、私はvarで使用したセットを好むし、そこから関数を呼び出します。

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は、このようにすることには何のメリットもあります。 –