第一次选择pickerView时未触发条件

Posted

技术标签:

【中文标题】第一次选择pickerView时未触发条件【英文标题】:Condition not being triggered on first pick of pickerView 【发布时间】:2018-03-30 15:51:18 【问题描述】:

我有一个按钮和pickerView。按下按钮时,会显示pickerView。

在pickerView 上进行选择后,按钮的标题应更改为“显示全部”,它会这样做,但不会在第一次迭代时更改。它只会在随后的按钮按下时发生变化。

我确定我错过了一些东西,但无法确定是什么。

@IBOutlet weak var chooseSourcesBtnOut: UIButton!
var isPicky = false  

@IBAction func chooseSourcesBtn(_ sender: UIButton) 
isPicky = !isPicky    

if isPicky 
  if self.dropDown.isHidden 
    self.dropDown.isHidden = false
  
 else 
  if self.dropDown.isHidden == false 
    self.dropDown.isHidden = true
  
  chooseSourcesBtnOut.titleLabel?.text = "Choose Source"
  tableView.reloadData()



func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
    isPicky = true
    selection = pickerSourceRows[row]    
    chooseSourcesBtnOut.titleLabel?.textAlignment = .center
    chooseSourcesBtnOut.titleLabel?.text = "Show All"
    dropDown.isHidden = true
    tableView.reloadData()
  

【问题讨论】:

【参考方案1】:

我将设置文本对齐方式的行移至viewWillAppear,它现在按预期工作。显然,更改按钮的 textAlignment 是不行的,然后立即更改文本。谁知道?哦,好吧,无论如何,这属于viewWillAppear

override func viewWillAppear(_ animated: Bool) 
 super.viewWillAppear(true)
   chooseSourcesBtnOut.titleLabel?.textAlignment = .center

【讨论】:

以上是关于第一次选择pickerView时未触发条件的主要内容,如果未能解决你的问题,请参考以下文章

当 pickerView 出现时 UITextField 中的文本向左移动

使用 addClass 时未触发 Jquery 类选择器

第一次在 AccountManager 中添加帐户时未触发 AccountAuthenticatorActivity

使用 setattribute 选择下拉列表的值时未触发 Onchange 事件

pickerview 中的条件或 if 语句

将 initWithCoder: implementation 转换为 Swift 时未触发手势识别器选择器