递增按钮的最大/最小值

时间:2016-10-21 14:10:42

标签: swift max increment min

我对Xcode / Swift相当新,我想知道如何设置导致加号和减号按钮被触摸的金额的最大值和最小值。我现有的代码如下。 notifyBeforeAvailabilty我想从1-20开始,而ratePerMinute我想从0.00美元到15.00美元。

<dependency>
    <groupId>com.test</groupId>
    <artifactId>application-dao</artifactId>
    <version>${project.version}</version>
    <scope>compile</scope>
</dependency>

2 个答案:

答案 0 :(得分:1)

您可以使用min&amp; max用于钳制值。类似的东西:

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

此外,您可以避免使用NSNumberFormatter

自行格式化数字

顺便说一句......如果您使用UIStepper控件,则有minimumValue&amp; maximumValue(以及stepValue)处理限制的属性......

答案 1 :(得分:0)

Alladinian的答案是正确的,但我更喜欢在var中使用didSet并从那里调用函数。

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
}