2016-06-26 3 views
-2

Как я могу принять входное значение от пользователя с помощью текстового поля, а затем использовать его для выполнения математических функций в Swift?Использовать значение, введенное в UITextField

Я хочу получить значение от пользователя, а затем найти синус этого значения. Плюс я хочу взять вход и скрывать его в радианах. Пожалуйста, помогите.

+3

, взяв текст, опционально создав int или double или что-то другое, а затем применив к нему 'sin'. В чем проблема? – luk2302

+0

На самом деле я новичок, поэтому вы можете предоставить мне какой-то пример кода? –

+0

как есть кнопка, текстовое поле и ярлык, поэтому пользователь вводит число в текстовое поле, нажимает кнопку, а ее грех отображается на ярлыке –

ответ

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, не сделав ничего (что Я хочу). Таким образом, вы не должны беспокоиться о непредвиденных сбоях при попытке вычислить значение.

+0

Спасибо, просто попробовал –

+0

оценщик в радианах или градусах –

0

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

, как вы бы обработать строку в значение грех

Чтобы получить текст из текстового поля, вам нужно будет что-то вроде:

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

но вам сначала захотите проверить, что текстовое поле имеет значение и проверяет, что это число, чтобы предотвратить сбой.

+0

спасибо, просто попробовал его ... –

+0

Теперь, как показать его на этикетке –

+0

someLabel.text = "\ (sinValue)" –

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 
    } 
} 
Смежные вопросы