【发布时间】:2017-03-24 04:50:02
【问题描述】:
我正在尝试使用 UITapGestureRecognizer 显示已隐藏的 UIPickerView。我正在尝试将此GestureRecognizer 添加到UILabel。
UITapGestureRecognizer 无法对UILabel 进行一次录音。任何指针表示赞赏。谢谢
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.
}
}
【问题讨论】:
-
测试是否被调用
-
否则检查您的标签框架
-
您的视图控制器中是否有另一个手势识别器可能会以某种方式干扰这个?
标签: ios swift uipickerview uitapgesturerecognizer