使用 UIkit 的 Swift 中的菜单按钮

问题描述 投票:0回答:1

如何使用 UIkit 在 Swift 中重新创建此类菜单?是否也可以播放相同的动画?

https://i.stack.imgur.com/h5kXC.jpg

swift button menu uikit
1个回答
0
投票

好的,尽情享受吧

class ViewController: UIViewController {

    let filterButton = UIButton()

    override func viewDidLoad() {
        super.viewDidLoad()

 
        filterButton.setImage(UIImage(systemName: "ellipsis.circle"), for: .normal)
        filterButton.tintColor = .blue
        filterButton.addTarget(self, action: #selector(showFilters), for: .touchUpInside)
        filterButton.translatesAutoresizingMaskIntoConstraints = false

        view.addSubview(filterButton)

        NSLayoutConstraint.activate([
            filterButton.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            filterButton.centerYAnchor.constraint(equalTo: view.centerYAnchor)
        ])
    }

    @objc func showFilters() {
        let alertController = UIAlertController( title: nil, message: nil, preferredStyle: .actionSheet)

        let scanButton = UIAlertAction(title: "Scan document", style: .default) { _ in
            print(" 1 selected")
        }

        let connectButton = UIAlertAction(title: "Connect to Server", style: .default) { _ in
            print(" 2 selected")
        }

        let editButton = UIAlertAction(title: "Edit", style: .default) { _ in
            print(" 3 selected")
        }

        let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)

        alertController.addAction(scanButton)
        alertController.addAction(connectButton)
        alertController.addAction(editButton)
        alertController.addAction(cancelAction)

        alertController.popoverPresentationController?.sourceView = filterButton
        alertController.popoverPresentationController?.sourceRect = filterButton.bounds
        alertController.popoverPresentationController?.permittedArrowDirections = .up

        present(alertController, animated: true, completion: nil)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.