想从下拉列表中选择选项并根据所选选项更改按钮的标题...如何?

Posted

技术标签:

【中文标题】想从下拉列表中选择选项并根据所选选项更改按钮的标题...如何?【英文标题】:want to select option from dropdown and change title of button according to selected option ...How? 【发布时间】:2017-10-04 12:40:07 【问题描述】:

对于下拉菜单,当我从下拉菜单中选择选项时,我使用 UItableView 和按钮显示下拉列表我想根据所选选项更改按钮的标题??

// 食物按钮点击

func numberOfSections(in tableView: UITableView) -> Int 
    return 1


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return array.count


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: "foodcell", for: indexPath)

   // cell.textLabel?.text = array [indexPath.row]

    cell.textLabel?.text = array [indexPath.row]
    return cell



@nonobjc func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

    let cell = tableView.cellForRow(at: indexPath)

    selectFoodbutton.setTitle(cell?.textLabel?.text, for: .normal)
    self.foodtable.isHidden = true



@IBAction func selectFoodbutton(_ sender: Any) 

    self.foodtable.isHidden = !self.foodtable.isHidden

【问题讨论】:

【参考方案1】:

在按钮动作中编写代码以显示如下方式的表格视图。

首先,您在该按钮下方创建一个表格视图。 将数据源加载到该表视图中。 然后选择单元格之一。 然后将按钮标题设置为选定的。 然后最后隐藏表格视图。

像这样编码sn-p

@IBAction func educationBtnAction(_ sender: AnyObject) 
    //    let point = textfield.getBottomTableViewPoint()
    let point = sender.getPointBased(level: 1)
    self.educationTableview = UITableView(frame: CGRect(x: point.x, y: point.y, width: sender.frame.size.width + 10, height: 150), style: .plain)
    self.educationTableview.dataSource = self
    self.educationTableview.delegate  = self
    self.educationTableview.backgroundColor = UIColor.clear
    self.educationTableview.applyPropertiesToPopupTableView()
    //  textfield.superview?.addSubview(labPanelTableView)
    bgScrollView.addSubview(educationTableview)

    if self.educationTableview.alpha == 0.0
        UIView.animate(withDuration: 0.5, delay: 0.0, options: .curveEaseOut, animations: 
            self.hidePopups()
            self.educationTableview.alpha = 1.0
        , completion:  finished in
        )
    
    commonTypeArray = ["1", "2", "3", "4", "5",]
    self.educationTableview.reloadData()    

func hidePopups() 
    self.educationTableview.alpha = 0.0

对于剩余的过程,您上面的代码就足够了

【讨论】:

selectFoodbutton.setTitle(cell?.textLabel?.text, for: .normal)...这段代码还不足以改变按钮的标签吗??

以上是关于想从下拉列表中选择选项并根据所选选项更改按钮的标题...如何?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Angular 复制带有 UI 和所选值的下拉列表

如果单击按钮,下拉列表选项会更改(VueJS 和 Laravel 6)

在选择选项更改时将子组件中的道具传递给父组件

剑道下拉选项标签更改选定值

如何在选项/选择标签循环之外的按钮中使用 Vue.js 中下拉列表的选定 ID

保存后如何显示所选选项