Am trying to show a UIPickerView
thats already hidden using UITapGestureRecognizer
. Am trying to add this GestureRecognizer
to a UILabel
.
The UITapGestureRecognizer
doesn't work on taping the UILabel
once. Any pointers appreciated. Thanks
class FirstViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet var baseCurrency: UITextField!
@IBOutlet var excahngeCurrency: UITextField!
@IBOutlet var dropDown: UIPickerView!
@IBOutlet var currencyLabel: UILabel!
var list: [String: AnyObject] = [String: AnyObject]()
var titles: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
currencyLabel.isUserInteractionEnabled = true
let tap:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(showpickerView))
tap.numberOfTapsRequired = 1
currencyLabel.addGestureRecognizer(tap)
let url:URL = URL(string: "https://openexchangerates.org/api/currencies.json?app_id=7486951aeb994599a08cd7979bef3c03")!
Alamofire.request(url).responseJSON(completionHandler: {
response in
switch response.result {
case.success:
self.list = response.result.value as! [String: AnyObject]
for (key, _) in self.list{
self.titles += [key]
}
print(self.titles)
if (self.titles.count > 0) {
self.dropDown.reloadAllComponents()
print("test")
} else {
print("there is no data for your picker view")
}
case .failure:
print("error")
}
})
}
func showpickerView(_ sender:UITapGestureRecognizer){
print("test")
//self.dropDown.isHidden = false
}
func numberOfComponents(in pickerView: UIPickerView) -> Int
{
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?{
return self.titles[row]
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
{
return self.titles.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
currencyLabel.text = self.titles[row]
self.dropDown.isHidden = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}