首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Swift:如何在iOS中创建弹出菜单

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

Stack Overflow用户
提问于 2014-12-02 01:36:20
回答 1查看 10.2K关注 0票数 6

我正在一个自定义的UIView画布上做一些绘图,而不是在视图底部有一组按钮来允许用户选择形状,我想让用户做一个长按手势,然后出现一个弹出式菜单,其中有他们可以选择的不同形状。虽然我假设在iOS中有类似的东西,但我在xCode中看不到这样的东西。我不希望当你的电池电量和通知不足时出现警报弹出窗口。

我已经研究过使用UIPopoverController,但我对我读到的其他一些关于堆栈溢出的问题以及苹果提供的文档感到有点困惑。

EN

回答 1

Stack Overflow用户

发布于 2015-10-14 18:00:18

在将该按钮与viewController和popover作为一个段进行连接后,您将需要进行准备。下面是为popover segue做准备的代码。

代码语言:javascript
复制
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
    if let identifier = segue.identifier
    {
        switch identifier
        {
            case History.SegueIdentifier:

            if let tvc = segue.destinationViewController as? TextViewController
            {
                if let ppc = tvc.popoverPresentationController
                {
                    ppc.delegate = self
                }
                tvc.text = "\(diagnosticHistory)"
            }

            default: break
        }
    }
}

一定要记住,如果你有一个iPhone,弹出窗口将会全屏显示,所以你可以用它来修复这个问题,假设一个文本接受了一些特定的元素。

这将修复弹出窗口,使其与文本中元素的大小完全一致。

代码语言:javascript
复制
@IBOutlet weak var textView: UITextView!
{
    didSet
    {
        textView.text = text
    }
}

var text : String = ""
{
    didSet
    {
        textView?.text = text
    }
}

override var preferredContentSize : CGSize
{
    get
    {
        if textView != nil && presentingViewController != nil
        {
            return textView.sizeThatFits(presentingViewController!.view.bounds.size)
        }
        else
        {
            return super.preferredContentSize
        }
    }

    set {super.preferredContentSize = newValue}

    }
}

我将这两个放在不同的视图控制器中,但我猜它会起作用。您还需要实现UIPopoverPresentationControllerDelegate

代码语言:javascript
复制
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
    return UIModalPresentationStyle.None
}

为了你的第一个viewController。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27233977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档