我对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>
答案 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
}