Многоразовый список DropDown с кнопкой в ​​Swift iOS Xcode - PullRequest
0 голосов
/ 25 апреля 2020

вот мой код выпадающего списка с кнопкой. Я использую табличное представление для этого выпадающего списка. Я хотел сделать этот dropDown Многоразовый . Потому что один и тот же dropDown я собираюсь использовать много раз в другом контроллере представления.

class CellClass: UITableViewCell {

}

class ViewController: UIViewController {

@IBOutlet weak var btnGender: UIButton!

let tableView = UITableView()
var elements = ["Male","Female"]

override func viewDidLoad() {
    super.viewDidLoad()

    super.viewDidLoad()
    tableView.delegate = self
    tableView.dataSource = self
    tableView.register(CellClass.self, forCellReuseIdentifier: "Cell")
}

func addDropDownList() {
    let frames = btnGender.frame
    tableView.frame = CGRect(x: frames.origin.x, y: frames.origin.y + frames.height + 5, width: frames.width, height: CGFloat(elements.count * 50))
    self.view.addSubview(tableView)
    tableView.layer.cornerRadius = 5
}

@IBAction func onClickGender(_ sender: Any) {
    addDropDownList()
}

}

extension ViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return elements.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
    cell.textLabel?.text = elements[indexPath.row]
    return cell
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 50
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    btnGender.setTitle(elements[indexPath.row], for: .normal)

    let frames = btnGender.frame
    tableView.frame = CGRect(x: frames.origin.x, y: frames.origin.y + frames.height, width: frames.width, height: CGFloat(elements.count * 0))

}
}

OutPut: - здесь

Я хотел сделать это dropDown Повторно используемым . Потому что один и тот же dropDown я собираюсь использовать много раз в другом контроллере представления. Я только начал учиться быстро. и я ищу помощь в вопросе. Спасибо.

...