【问题标题】:How to add more than eight buttons in a UIAlertView?如何在 UIAlertView 中添加八个以上的按钮?
【发布时间】:2013-06-21 10:17:48
【问题描述】:

我想在UIAlertView 中添加超过 8 个按钮,但是当我添加按钮时,它们会相互覆盖而不是滚动。标题也被隐藏了。

我该如何解决这个问题并在警报视图中添加一些滚动??

【问题讨论】:

  • 不...你不能。您必须使用与 UIAlertView 相同的方式创建自定义视图。由于增加了没有。按钮,将不允许警报滚动。
  • 使用 customview 而不是 alertview
  • Apple 文档建议如果您使用两个以上的按钮,您应该真正使用 UIActionSheet 这不是要求,只是建议。

标签: iphone ios objective-c ios6


【解决方案1】:

Seems like this kind of question comes up at least once a day on StackOverflow,但如果你想弄乱 UIAlertView 的各种组件,简短的回答是:不要

If you look at Apple's documentation for UIAlertView,在第一屏的文字中写道:

子类化注释

UIAlertView 类旨在按原样使用,而不是 支持子类化。此类的视图层次结构是私有的,并且 不得修改。

这意味着 UIAlertView 层次结构中的任何乱七八糟的事情都可能在未来的 iOS 版本中严重破坏您的应用程序。

所以如果你想添加滚动条或花里胡哨,你真的应该创建自己的自定义 UIView(它看起来像 UIAlertView,但完全是你自己创建的)

【讨论】:

  • 我总是发现每个人都对UIAlertView 子类化感到困惑。虽然我完全同意,如果您要搞乱UIAlertViews,最好使用UIView 或其他东西创建自己的版本,但Apple 文档确实指定子类化是@interface myAlertView : UIAlertView,而不是使用@987654327 @ 不推荐,但苹果仍然允许使用 addSubview,因为它不是子类化。 +1 链接到苹果文档
【解决方案2】:

如果您有更多按钮,那么 UIActionSheet 是比使用 UIAlertView 的最佳选择。如果您不想使用UIActionSheet,总有一个自定义视图可以帮助您!

【讨论】:

  • 这个或创建一个自己的视图并将其添加为子视图
【解决方案3】:

如果您在 UIAlertView 中需要更多 8 个按钮,您应该重新考虑您的 UI。 8 个按钮是标准警报视图可以处理的最大值。

要么构建您自己的警报视图,要么使用带有表格视图的普通视图控制器。

【讨论】:

    【解决方案4】:

    不确定是否有必要,但作为替代方案,您可以提供另一个 ViewController/ModalVC,它将具有您可能需要的所有属性....

    【讨论】:

    • 你说的是自定义警报视图吗?
    • 这是一个想法,但我不会说这是最好的想法。您可能希望更详细地更新您的答案。
    【解决方案5】:
    【解决方案6】:

    如果您想添加许多按钮,您可以为 alertView 使用自定义实现。 一个很好的例子是FUIAlertView

    或者你可以使用WEpopover 并添加一个表格视图。

    【讨论】:

    • 问题是如何向UIAlertView 添加更多的8 个按钮,而不是如何使用UIAlertView
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多