mirror of
https://github.com/hmalik144/EasyCC_iOs_-legacy-.git
synced 2026-03-18 07:26:02 +00:00
Easy interface Currency Converter for iOS
This commit is contained in:
@@ -7,11 +7,37 @@
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import Alamofire
|
||||
|
||||
class ViewController: UIViewController {
|
||||
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate{
|
||||
|
||||
@IBOutlet weak var currencyChoiceOne: UITextField!
|
||||
@IBOutlet weak var inputOne: UITextField!
|
||||
@IBOutlet weak var currencyChoiceTwo: UITextField!
|
||||
@IBOutlet weak var inputTwo: UITextField!
|
||||
@IBOutlet weak var spinnerOne: UIPickerView!
|
||||
@IBOutlet weak var spinnerTwo: UIPickerView!
|
||||
|
||||
var rateOne: String = ""
|
||||
var rateTwo: String = ""
|
||||
|
||||
var exchangeRate: Double = 1
|
||||
|
||||
var currencyList = ["AFN - Afghan Afghani","DZD - Algerian Dinar","AOA - Angolan Kwanza","ARS - Argentine Peso","AMD - Armenian Dram","AWG - Aruban Florin","AUD - Australian Dollar","AZN - Azerbaijani Manat","BSD - Bahamian Dollar","BHD - Bahraini Dinar","BDT - Bangladeshi Taka","BBD - Barbadian Dollar","BYR - Belarusian Ruble","BZD - Belize Dollar","BTN - Bhutanese Ngultrum","BTC - Bitcoin","BOB - Bolivian Boliviano","BAM - Bosnia And Herzegovina Konvertibilna Marka","BWP - Botswana Pula","BRL - Brazilian Real","GBP - British Pound","BND - Brunei Dollar","BGN - Bulgarian Lev","BIF - Burundi Franc","KHR - Cambodian Riel","CAD - Canadian Dollar","CVE - Cape Verdean Escudo","KYD - Cayman Islands Dollar","XAF - Central African CFA Franc","XPF - CFP Franc","CLP - Chilean Peso","CNY - Chinese Yuan","COP - Colombian Peso","KMF - Comorian Franc","CDF - Congolese Franc","CRC - Costa Rican Colon","HRK - Croatian Kuna","CUP - Cuban Peso","CZK - Czech Koruna","DKK - Danish Krone","DJF - Djiboutian Franc","DOP - Dominican Peso","XCD - East Caribbean Dollar","EGP - Egyptian Pound","ERN - Eritrean Nakfa","ETB - Ethiopian Birr","EUR - Euro","FKP - Falkland Islands Pound","FJD - Fijian Dollar","GMD - Gambian Dalasi","GEL - Georgian Lari","GHS - Ghanaian Cedi","GIP - Gibraltar Pound","GTQ - Guatemalan Quetzal","GNF - Guinean Franc","GYD - Guyanese Dollar","HTG - Haitian Gourde","HNL - Honduran Lempira","HKD - Hong Kong Dollar","HUF - Hungarian Forint","ISK - Icelandic Kruna","INR - Indian Rupee","IDR - Indonesian Rupiah","IRR - Iranian Rial","IQD - Iraqi Dinar","ILS - Israeli New Sheqel","JMD - Jamaican Dollar","JPY - Japanese Yen","JOD - Jordanian Dinar","KZT - Kazakhstani Tenge","KES - Kenyan Shilling","KWD - Kuwaiti Dinar","KGS - Kyrgyzstani Som","LAK - Lao Kip","LVL - Latvian Lats","LBP - Lebanese Lira","LSL - Lesotho Loti","LRD - Liberian Dollar","LYD - Libyan Dinar","MOP - Macanese Pataca","MKD - Macedonian Denar","MGA - Malagasy Ariary","MWK - Malawian Kwacha","MYR - Malaysian Ringgit","MVR - Maldivian Rufiyaa","MRO - Mauritanian Ouguiya","MUR - Mauritian Rupee","MXN - Mexican Peso","MDL - Moldovan Leu","MNT - Mongolian Tugrik","MAD - Moroccan Dirham","MZN - Mozambican Metical","MMK - Myanma Kyat","NAD - Namibian Dollar","NPR - Nepalese Rupee","ANG - Netherlands Antillean Gulden","TWD - New Taiwan Dollar","NZD - New Zealand Dollar","NIO - Nicaraguan Cordoba","NGN - Nigerian Naira","KPW - North Korean Won","NOK - Norwegian Krone","OMR - Omani Rial","TOP - Paanga","PKR - Pakistani Rupee","PAB - Panamanian Balboa","PGK - Papua New Guinean Kina","PYG - Paraguayan Guarani","PEN - Peruvian Nuevo Sol","PHP - Philippine Peso","PLN - Polish Zloty","QAR - Qatari Riyal","RON - Romanian Leu","RUB - Russian Ruble","RWF - Rwandan Franc","SHP - Saint Helena Pound","WST - Samoan Tala","STD - Sao Tome And Principe Dobra","SAR - Saudi Riyal","RSD - Serbian Dinar","SCR - Seychellois Rupee","SLL - Sierra Leonean Leone","SGD - Singapore Dollar","SBD - Solomon Islands Dollar","SOS - Somali Shilling","ZAR - South African Rand","KRW - South Korean Won","XDR - Special Drawing Rights","LKR - Sri Lankan Rupee","SDG - Sudanese Pound","SRD - Surinamese Dollar","SZL - Swazi Lilangeni","SEK - Swedish Krona","CHF - Swiss Franc","SYP - Syrian Pound","TJS - Tajikistani Somoni","TZS - Tanzanian Shilling","THB - Thai Baht","TTD - Trinidad and Tobago Dollar","TND - Tunisian Dinar","TRY - Turkish New Lira","TMT - Turkmenistan Manat","AED - UAE Dirham","UGX - Ugandan Shilling","UAH - Ukrainian Hryvnia","USD - United States Dollar","UYU - Uruguayan Peso","UZS - Uzbekistani Som","VUV - Vanuatu Vatu","VEF - Venezuelan Bolivar","VND - Vietnamese Dong","XOF - West African CFA Franc","YER - Yemeni Rial","ZMW - Zambian Kwacha"]
|
||||
|
||||
|
||||
var converstionRate:Double?
|
||||
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.currencyChoiceOne.text = self.currencyList[1]
|
||||
self.currencyChoiceTwo.text = self.currencyList[1]
|
||||
|
||||
self.spinnerOne.isHidden = true
|
||||
self.spinnerTwo.isHidden = true
|
||||
|
||||
// Do any additional setup after loading the view, typically from a nib.
|
||||
}
|
||||
|
||||
@@ -19,7 +45,88 @@ class ViewController: UIViewController {
|
||||
super.didReceiveMemoryWarning()
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
@IBAction func textFieldChangeListener(_ sender: Any) {
|
||||
let valueOne = Double(inputOne.text!)
|
||||
let valueTwo = (valueOne ?? 1)*exchangeRate
|
||||
self.inputTwo.text = String(describing: valueTwo)
|
||||
}
|
||||
|
||||
@IBAction func textChangeListenerTwo(_ sender: Any) {
|
||||
let valueOne = Double(inputTwo.text!)
|
||||
let valueTwo = (valueOne ?? 1)*exchangeRate
|
||||
self.inputOne.text = String(valueTwo)
|
||||
}
|
||||
|
||||
public func numberOfComponents(in pickerView: UIPickerView) -> Int{
|
||||
return 1
|
||||
|
||||
}
|
||||
|
||||
public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
|
||||
|
||||
return currencyList.count
|
||||
|
||||
}
|
||||
|
||||
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
|
||||
|
||||
self.view.endEditing(true)
|
||||
return currencyList[row]
|
||||
|
||||
}
|
||||
|
||||
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
|
||||
|
||||
if (pickerView.tag == 1){
|
||||
self.currencyChoiceOne.text = self.currencyList[row]
|
||||
downloadData()
|
||||
self.spinnerOne.isHidden = true
|
||||
}else if(pickerView.tag == 2){
|
||||
self.currencyChoiceTwo.text = self.currencyList[row]
|
||||
downloadData()
|
||||
self.spinnerTwo.isHidden = true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func textFieldDidBeginEditing(_ textField: UITextField) {
|
||||
|
||||
if textField == self.currencyChoiceOne {
|
||||
self.spinnerOne.isHidden = false
|
||||
//if you dont want the users to se the keyboard type:
|
||||
|
||||
textField.endEditing(true)
|
||||
}else if textField == self.currencyChoiceTwo{
|
||||
self.spinnerTwo.isHidden = false
|
||||
|
||||
textField.endEditing(true)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func downloadData() {
|
||||
Alamofire.request(urlBuilder()).responseJSON { response in
|
||||
|
||||
if let json = response.result.value as? Dictionary<String,Double> {
|
||||
self.exchangeRate = json["\(self.rateOne)_\(self.rateTwo)"]!
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func urlBuilder() -> String{
|
||||
|
||||
var url = "https://free.currencyconverterapi.com/api/v6/convert?q="
|
||||
|
||||
rateOne = String(currencyChoiceOne.text!.characters.prefix(3))
|
||||
rateTwo = String(currencyChoiceTwo.text!.characters.prefix(3))
|
||||
|
||||
url = url + rateOne + "_" + rateTwo + "&compact=ultra"
|
||||
|
||||
print(url)
|
||||
|
||||
return url
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user