使用在UITextField中输入的值

时间:2016-06-26 17:45:30

标签: ios xcode

如何使用文本字段从用户获取输入值,然后使用它在Swift中执行数学函数?

我想从用户那里获取一个值,然后找到该值的正弦值。 另外,我想接受输入并将其转换为弧度。 请帮忙。

3 个答案:

答案 0 :(得分:0)

let sinValue = sin(Double("2")!)

是如何将字符串处理为sin值

要从文本字段中获取文本,您需要以下内容:

let sinValue = sin(Double(someTextField.text)!)

但您首先要检查文本字段是否有值并验证它是否为防止崩溃的数字。

答案 1 :(得分:0)

//Initialize Textfied
var textField = UITextField(frame: CGRect(0, 0, 100, 100)) 
var sinNumber:Double = 0    

//Now in your header (where it says class X:subclass list)
//maybe something like class Viewcontroller:UIViewController, UITextFieldDelegate

如上所述添加UITextFieldDelegate 然后,您需要添加以下函数以确定用户何时完成TextField的编辑

func textFieldDidEndEditing(textField: UITextField) {
    sinNumber = getSinOfInput(textField.text)
}

func getSinOfNumber(numbers:String) {

    //If numbers is NOT a string full of numbers (it has characters), it should return nil
    var num = Double(numbers)
    if num != nil {
        //Do login here to find the sin
        num = ....
        return num
    }
    else {
        return 0
    }
} 

答案 2 :(得分:0)

根据您的评论,您将文本字段作为IBOutlet。我添加了一个按钮来获取值:

@IBOutlet weak var textField: UITextField!

@IBOutlet weak var label: UILabel!

@IBAction func buttonPress(sender: AnyObject) {
    guard let text = textField.text, value = Double(text) else { return }

    label.text = String(sin(value))
}

我使用guard的原因是因为如果文字是nil或者它不是Double,那么它只会return,没有做任何事情(这是我想要的是)。这样,您在尝试计算值时不必担心意外崩溃。