Я пытаюсь создать выпадающее меню, в котором нажатие на пункты меню приводит к другому выпадающему меню.
Прямо сейчас есть одна кнопка.При нажатии на него отображается меню (которое представляет собой таблицу в коде).Я попытался поместить кнопки в таблицу, чтобы можно было сделать то же самое, но на каждой строке отображается только одна кнопка.
Это код, который я использовал для выпадающего меню «одна кнопка + 1»:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var btnDrop: UIButton!
@IBOutlet weak var tblView: UITableView!
var menuOptions = ["PERSONAL RECORDS", "CLINICAL RECORDS", "MESSAGES", "SHARE MY RECORDS", "APPOINTMENTS", "MANAGE MY ACCOUNT", "MY EDUCTIONAL MATERIAL"]
override func viewDidLoad() {
super.viewDidLoad()
tblView.isHidden = true
// Do any additional setup after loading the view.
}
@IBAction func onclickDropButton(_ sender: Any) {
if tblView.isHidden{
animate(toogle: true)
} else {
animate(toogle: false)
}
}
func animate(toogle:Bool){
if toogle{
UIView.animate(withDuration: 0.3){
self.tblView.isHidden = false
}
} else {
UIView.animate(withDuration: 0.3){
self.tblView.isHidden = true
}
}
}
}
extension ViewController: UITableViewDelegate, UITableViewDataSource {
func tableView( _ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return menuOptions.count
}
func tableView( _ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = menuOptions[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
btnDrop .setTitle("\(menuOptions[indexPath.row])", for: .normal)
animate(toogle: false)
}
}
Я хочу, чтобы меню выглядело так:
Меню 1
Меню 2
Но вместо этого это выглядит так
Меню приложения