iPhone应用程序的灵活弹出菜单窗口

Posted

技术标签:

【中文标题】iPhone应用程序的灵活弹出菜单窗口【英文标题】:Flexible popup menu window for iPhone apps 【发布时间】:2012-12-20 02:05:26 【问题描述】:

我正在为我的应用寻找可用于向用户显示各种消息的 UI 元素。它可能是“今日提示”,可能是折扣代码,也可能是对他们刚刚进入的屏幕的用途的说明。

我希望此控件具有灵活性并允许各种内容。关闭按钮、文本、图像等。我也希望能够自定义其背景、透明度、框架等。

我对此不是 100% 确定,但有人告诉我,iPad 的 UIPopoverViewController 可以实现与我所指的非常相似的东西,尽管我并不认为总是需要在其中一个上使用箭头边缘。有一个 2 年历史的无 ARC 移植到 iPhone 上,名为WEPopover,这在 ios 社区中似乎很受欢迎,但我想知道是否还有更好的东西。我认为“弹出”的概念比“弹出”更接近我正在寻找的内容。

谢谢!

【问题讨论】:

【参考方案1】:

那绝对不错,不是吗? 我不知道有任何预制包可以做到这一点,但您需要创建一个新的 viewController 并将其加载到您目前所在的视图中。 如果您使用特定选项(例如大小、颜色以及是否需要特定按钮)设置视图的初始化,那么您就在正确的轨道上......

为您提供示例代码非常重要,因为您在此处询问的内容非常核心。但为了让您开始:

下载 facebook IOS sdk Here 并查看 FBDialog 文件...他们就是这样做的。

或者您可以始终创建一个包含 UIWebview 的视图,您可以在其中加载 URL 或发送给它的纯 html。 将其设计为弹出框,没有人会注意到其中的区别。 初始化 UIViewcontroller 并在视图中加载

[self.view addSubView:popOver.view];

在您当前的视图中显示它。

我知道这不是一个完整的例子,但我认为没有...

祝你好运

快速编辑:你也可以在 Github here 上找到 FB SDK,更容易查看具体文件...它们在 'src' 文件夹中

【讨论】:

我想我设法找到了我要找的东西,不过非常感谢您的回复。我确实查看了 FBDialog,但是它完全依赖于 URL,我看不到一种快速而肮脏的方式来为我自己的视图重新使用 shell。我在答案中链接的课程几乎就是这样做的。 啊,你发现了一些东西.. 下次我会记住的,以前从未听说过。祝你好运【参考方案2】:

我设法找到了一个解决方案,基于一些简单的测试,它似乎可以很好地解决问题。这是 David Keegan 的 KGModal。您可以通过编程方式或通过 xib 创建一个内容视图并将其传递给模式。它计算出大小,使背景变暗,并在点击 X 或弹出窗口之外自行关闭。

它具有很强的可扩展性,您应该能够对其进行修改以满足您的需要。唯一的挑战是现在它是一个单例,所以如果你想堆叠或排队一堆它们,你不能通过分配一系列模态来做到这一点。不过,这不是您无法解决的问题。

【讨论】:

以上是关于iPhone应用程序的灵活弹出菜单窗口的主要内容,如果未能解决你的问题,请参考以下文章

苹果手机怎么阻止弹出网页

在 iPhone 上显示弹出透明窗口的最佳方法?

iPhone 设备轮换上的弹出窗口更改

在 iPhone 应用程序中更改系统弹出窗口以获得核心位置权限

如何在 iPhone (iOS 5) 上的音乐应用程序中为 UITableViewCell 创建一个弹出窗口

iphone 复制/粘贴菜单未显示在 UITableViewCell 中