標籤:ios8 swift stepper uikit 純程式碼
之前講過通過storyboard的方式捕獲控制項的值,現在我們來試試通過純程式碼的方式來實現同樣的功能。首先定義一個stepper和一個label,用label來顯示stepper的當前值。
self.priceStepper = UIStepper(frame: CGRectMake(150, 120, 100, 20)) self.priceStepper.minimumValue = 100//最小值 self.priceStepper.maximumValue = 2000//最大值 self.priceStepper.stepValue = 100//步長 self.priceStepper.tintColor = UIColor.orangeColor() self.priceStepper.addTarget(self, action: "showPrice:", forControlEvents: UIControlEvents.ValueChanged) dialogContainer.addSubview(priceStepper)
我們使用了addTarget的方式,這跟之前在storyboard中拖動stepper的action中的ValueChanged是一樣的,我們給這個步進器增加了一個addTarget,對象是它自己,捕獲的是stepper值的變化,每當我們點擊+或者-的時候,就會觸發這個方法。方法捕獲了ValueChanged後,調用了一個action:showPrice。showPrice的代碼如下:
func showPrice(sender:UIStepper!){ self.tasteLabel.text = "消費上限: \(Int(self.priceStepper.value))" }
tasteLabel是我們之前定義的用來顯示stepper的值的,代碼如下:
self.tasteLabel = UILabel(frame: CGRectMake(20, 130, 120, 10)) // self.tasteLabel.textAlignment = NSTextAlignment.Center self.tasteLabel.font = UIFont.boldSystemFontOfSize(17) self.tasteLabel.text = "消費上限: 100" dialogContainer.addSubview(self.tasteLabel)
運行效果如下,初始狀態:
點擊stepper後label中的值會發生變化:
swift UI專項訓練41 用純程式碼的方式實現stepper的值傳遞