如何在Swift 3中创建一个下拉菜单

时间:2017-06-18 13:41:57

标签: ios drop-down-menu swift3 xcode8

如何使用swift 3在iOS中实现下拉菜单,如下图所示: enter image description here

我搜索过SO问题,但他们更喜欢使用UIPicker,但我希望实现这一点。是否可以通过使用表格视图来实现此类型?

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

enter image description here

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

3 个答案:

答案 0 :(得分:4)

(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)
    }

}
}

答案 1 :(得分:2)

dropDown有大量的Demo和示例,当用户点击按钮时,你可以通过tableView just 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()

答案 2 :(得分:0)

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

在这里Details