gpt4 book ai didi

ios - Swift:如何在 iOS 中创建弹出菜单

转载 作者:可可西里 更新时间:2023-10-31 23:45:07 29 4
gpt4 key购买 nike

我正在自定义 UIView Canvas 上做一些绘图,而不是在 View 底部有一组按钮来允许用户选择形状,我想让用户做一个长按手势,然后会出现一个弹出式菜单,其中包含可供选择的不同形状。我在 xCode 中没有看到类似的东西,尽管我假设在 iOS 中有类似的东西。我不希望在电池电量不足和通知时出现警报弹出窗口。

我研究过使用 UIPopoverController,但我对我读过的其他一些 Stack Overflow 问题以及 Apple 提供的文档感到有点困惑。

最佳答案

Floating Menu

我描述了实现 float 菜单的步骤,如上图所示:

  1. 创建从 barButtonItem 到类型为“Present as Popover”的 MenuViewCobtrollersegue
  2. MenuViewController 中覆盖 preferredContentSize 为:

    override var preferredContentSize : CGSize
    {
    get
    {
    return CGSize(width: 88 , height: 176)
    }
    set
    {
    super.preferredContentSize = newValue
    }
    }

在我的例子中,我将返回宽度为 100 和大小为 200 的 CGSize。您可以设置这些值以正确适合您的 float 菜单内容。 4. 在初始/源 View Controller 中,在 prepare(for segue: sender) 方法中将 self 设置为 popoverPresentationController 委托(delegate):

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "ShowMenuSegue" {
if let tvc = segue.destination as? MenuViewController
{
tvc.delegate = self
if let ppc = tvc.popoverPresentationController
{
ppc.delegate = self
}
}
}
}

源 View Controller 必须遵守 UIPopoverPresentationControllerDelegate 并实现以下方法:

extension ViewController: UIPopoverPresentationControllerDelegate {

func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.none
}
}

就是这样。你有 float 菜单。希望这会很有用。

关于ios - Swift:如何在 iOS 中创建弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27233977/

29 4 0