Ios 使用pickerview和文本字段更新标签
我有一个PickerView,可以存放价值。此值将使用用户文本字段输入进行计算。结果将显示在标签中。这对我很有用。 启动应用程序后,文本字段的固定编号为1。 现在如何使用Pickerview自动更新标签? 我读了很多书,尝试了很多东西,但都不管用。 也许这是一件小事,但我看不出来Ios 使用pickerview和文本字段更新标签,ios,swift,ios7,swift2,xcode7,Ios,Swift,Ios7,Swift2,Xcode7,我有一个PickerView,可以存放价值。此值将使用用户文本字段输入进行计算。结果将显示在标签中。这对我很有用。 启动应用程序后,文本字段的固定编号为1。 现在如何使用Pickerview自动更新标签? 我读了很多书,尝试了很多东西,但都不管用。 也许这是一件小事,但我看不出来 import UIKit class BalkenbewehrungVC: UIViewController, UIPopoverPresentationControllerDelegate, UIPickerVie
import UIKit
class BalkenbewehrungVC: UIViewController, UIPopoverPresentationControllerDelegate, UIPickerViewDataSource, UIPickerViewDelegate, UITextFieldDelegate {
// Deklarationen Pickerview
var multiplicator : Double = 0.0
let multiplicators = [0.0,6.0,8.0,10.0,12.0,14.0,16.0,20.0,25.0,26.0,28.0,30.0,32.0,36.0,40.0,50.0]
let PI = 3.1415
// Pickerview füllen
var pickerDataSource = ["---","Ø 6","Ø 8","Ø 10","Ø 12","Ø 14","Ø 16","Ø 20","Ø 25","Ø 26","Ø 28","Ø 30","Ø 32","Ø 36","Ø 40","Ø 50"]
// Picker im aktivieren
@IBOutlet weak var Pickerview: UIPickerView!
// Ausgabewert As = xxxx cm
@IBOutlet var AusgabePicker: UILabel!
// Eingabe Anzahl Stäbe
@IBOutlet var AnzahlStab: UITextField!
@IBAction func test(sender: UITextField) {
if AnzahlStab.text!.isEmpty {
AnzahlStab.text = "1"
let result1 = (multiplicator / 10) * (multiplicator / 10) * PI / 4 * 1
AusgabePicker.text! = String(format:"%.3f", result1)
} else {
let result = (multiplicator / 10) * (multiplicator / 10) * PI / 4 * (AnzahlStab.text! as NSString).doubleValue
// let resultString = "\(result)"
AusgabePicker.text = String(format:"%.3f", result)
}
}
// Picker - feste Reihen
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
// Picker - Aufaddierung neuer Reihen
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerDataSource.count
}
// Picker - Datenübernahme multiplicator in Picker
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerDataSource[row]
}
// Picker - Wertefestlegung Picker
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
multiplicator = multiplicators[row]
_ = NSNumberFormatter.localizedStringFromNumber(NSNumber(double: multiplicator), numberStyle:.DecimalStyle)
}
在
pickerView
的didSelectRow
方法中,将标签文本设置为新计算的值
更新:要根据文本字段的输入更新标签文本,请在ViewController
的viewDidLoad
方法中添加此行
AnzahlStab.delegate = self
然后添加
textfielddidediting
方法,并在其中将标签的文本更新为新值。编辑完文本字段后将调用此方法。需要在选择器视图中调用函数测试didSelectRow
。或者简单地用以下代码替换您的didSelectRow
希望此答案对您有所帮助。Pickerview立即更新标签!但现在文本字段输入不能直接更新标签。只有在旋转pickerview之后。谢谢,谢谢。在这里我必须添加文本字段didendediting方法是的,很好。拥有它:o)。非常感谢你的帮助
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
multiplicator = multiplicators[row]
_ = NSNumberFormatter.localizedStringFromNumber(NSNumber(double: multiplicator), numberStyle:.DecimalStyle)
self.test(AnzahlStab)
}