maximum/minimum 在递增按钮上
maximum/minimum on incrementing buttons
我是 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
}
您可以使用 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
)属性可以处理你的限制...
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
}
我是 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
}
您可以使用 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
)属性可以处理你的限制...
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
}