如何在 Swift 3 中制作下拉菜单

Posted

技术标签:

【中文标题】如何在 Swift 3 中制作下拉菜单【英文标题】:How to make a drop down menu in Swift 3 【发布时间】:2017-06-18 13:41:56 【问题描述】:

如何使用swift 3在ios中实现下拉菜单如下图所示:

我搜索了 SO 问题,但他们更喜欢使用 UIPicker,但我希望实现这一目标。使用表格视图是否可以实现这种类型?

我需要从下拉菜单中选择日期:

如何在表格视图中显示日期,如下所示?

【问题讨论】:

您可以使用表格创建下拉列表。你可以找到很多 Dropdown 的演示。但我也建议使用 Picker 来选择日期而不是表格。 【参考方案1】:

dropDown 有一堆 Demo 和 sample,当用户单击按钮时,您可以通过使用 tableView 来实现这一点。 或者你可以使用这个 https://cocoapods.org/pods/DropDown

let dropDown = DropDown()

// The view to which the drop down will appear on
dropDown.anchorView = view // UIView or UIBarButtonItem

// The list of items to display. Can be changed dynamically
dropDown.dataSource = ["Car", "Motorcycle", "Truck"]

Optional properties:

// Action triggered on selection
dropDown.selectionAction =  [unowned self] (index: Int, item: String) in
  print("Selected item: \(item) at index: \(index)")


// Will set a custom width instead of the anchor view width
dropDownLeft.width = 200
Display actions:

dropDown.show()
dropDown.hide()

【讨论】:

您可以下载适用于最新 swift 版本的最新版本。【参考方案2】:

(Swift 3) 将文本框和 uipickerview 添加到情节提要,然后将委托和数据源添加到 uipickerview 并将委托添加到文本框。关注视频寻求帮助 https://youtu.be/SfjZwgxlwcc

import UIKit

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate 


@IBOutlet weak var textBox: UITextField!
@IBOutlet weak var dropDown: UIPickerView!


var list = ["1", "2", "3"]

override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.



public func numberOfComponents(in pickerView: UIPickerView) -> Int
    return 1



public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int

    return list.count



func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? 

    self.view.endEditing(true)
    return list[row]



func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 

    self.textBox.text = self.list[row]
    self.dropDown.isHidden = true



func textFieldDidBeginEditing(_ textField: UITextField) 

    if textField == self.textBox 
        self.dropDown.isHidden = false
        //if you dont want the users to se the keyboard type:

        textField.endEditing(true)
    



【讨论】:

【参考方案3】:

您可以使用 Apple 的默认下拉菜单。

看这里Details

【讨论】:

适用于 iOS 14 +

以上是关于如何在 Swift 3 中制作下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

excel2010制作下拉菜单日历的方法

excel2007为日期制作下拉菜单的方法步骤

swift 3中的多选下拉菜单

如何在离子中制作下拉菜单或选择框

你如何在 Tkinter 中制作下拉菜单?

网页中的下拉菜单怎样制作