我正在尝试制作允许您选择手机的UIPickerView。 它有两个组件,您首先选择品牌,然后选择手机。 它的工作原理非常完美但是当你选择一个手机很少的品牌时,有一个问题就是一个或两个,UIpickerView第二个组件显示了以前品牌的一些手机(如果有更多的手机),即使你不能选择它们。
这是拥有更多手机的品牌
这就是当您选择拥有一部手机的品牌后会发生什么
这是代码
var brands : [Brand] = []{
didSet
{
self.pick.reloadAllComponents()
}
}
didselectrow功能
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if component == 1 {
self.spinin.startAnimating()
loadMobiles(brand_id: String(brands[row].id))
} else{
id1 = mobiles[row].id
print(id1)
}
}
并加载手机功能
func loadMobiles(brand_id: String)
{
let url = URL(string: "http://myapi.com?id=\(brand_id)")!
let task = session.dataTask(with: url) { (data, response, error) in
guard let data = data else { return }
do{
self.mobiles = try parse(data)
DispatchQueue.main.async {
self.pick.reloadAllComponents()
self.pick.selectRow(0, inComponent: 0, animated: true)
self.spinin.stopAnimating()
}
}
catch{
print("JSONParsing Error :\(error)")
}
}
task.resume()
}
我该如何解决这个问题?