UIAlertView 替换

Posted

技术标签:

【中文标题】UIAlertView 替换【英文标题】:UIAlertView replacement 【发布时间】:2011-01-19 18:06:18 【问题描述】:

似乎我一直在与 UIAlertView 斗争,以使其做我想做的事。我已经完成了战斗 - 是否有任何具有以下功能的强大 UIAlertView 替代品,或者我需要自己编写吗?:

能够自定义警报视图大小/位置 能够更改布局的 按钮(堆叠与并排) 能够提示用户通过 UITextField 或 UITextView 进行输入 调整大小/重新定位行为 当键盘出现时 能够拥有一个 UITextView 滚动文字 UIAlertView 的像素完美副本 基本展示 理想的接口兼容 UIAlertView - 即它是一个替代品。

我发现了一些在 UIAlertView 上实现自定义的博客和 *** 帖子——这不是我想要的。我也不需要关于如何实现自定义 AlertView 的指南——我知道如何,我只想找到一个已经由社区维护的。我想要一个全新的替代品,它可以安全地提交 App Store,并且可以抵御 UIAlertView 更改(是的,我已经被烧毁了......)

如果您对其他理想功能有建议,请与 cmets 回复。

【问题讨论】:

@skaffman - 你怎么去掉了 iphone-ui 标签? 也许是因为它根本不是真正使用的标签(0 个问题),所以它不会添加任何东西? 【参考方案1】:

回答我自己的问题。

我搜索了一个提供我正在寻找的功能的预制 UIAlertView 项目。我确信它们存在——我已经看到了具有很好警报的应用程序。他们的作者不得分享——我理解这完全没问题。

所以我自己写了。 TSAlertView 是与 UIAlertView 接口兼容的模态警报视图的全新实现。就视觉外观而言,虽然它不是像素完美的副本,但它非常接近。它提供的功能基本上就是我在原始问题中概述的内容:

能够设置警报视图的显示宽度和最大高度。这让我可以在 iPad 上看到更好看的警报。

能够指定按钮的布局(堆叠与并排),即使只有两个按钮。 UIAlertView 总是困扰着我——如果我有两个按钮,它们总是并排放置。如果按钮文本不合适,这是一个大问题。

能够通过 UITextField 提示用户输入。有时,您只需要一种快速而肮脏的方式来提示用户输入内容。

出现键盘时调整大小/重新定位的行为。 (在提示用户输入时发生)

拥有用于滚动文本的 UITextView 的能力。可以显式设置此选项,而不是依赖 UIAlertView 将 UITextView 换成长文本。

用于基本显示的 UIAlertView 的近像素完美副本。

支持自定义背景

界面与 UIAlertView 兼容 - 即它是一个直接替代品。

去年,我在我的代码中使用了一些很棒的开源项目。我最喜欢的两个是 MBProgressHUD 和 MGSplitViewController,每个都托管在 github 上。我决定以同样的方式分享 TSAlertView。

https://github.com/TomSwift/TSAlertView

最初的实现肯定有一些错误。我还没有在运输项目中使用它,但我正在我当前的项目中使用它,并在几周内完成。如果您想自己尝试使用它,请随意。在 github 上发布任何问题,或者更好的是,提交修复。

享受吧!

以下是一些屏幕截图,显示 1) 2 个堆叠按钮 2) 输入功能 3) 显式宽度设置

【讨论】:

嗨,TomSwift,感谢您的出色项目。我正要开始这样一个项目,直到我看到你的 TSAlertView。真的很酷。我现在在我的一个应用程序中使用它。 ;-) 这太棒了。感谢您提供了一个出色且易于使用的开源替代品,以解决比 ios 中需要的更难的东西。【参考方案2】:

查看Smart Alert View,它是开源的。

【讨论】:

感谢您的链接。当我扫描代码并发现这个时,我害怕这个: - (void) ResizeAlertView: (UIAlertView *) alertView CGFloat height = view_.frame.size.height + 110; alertView.frame = CGRectMake(15.0f, (460-height)/2 ,300.0f, height); 另外,我更喜欢不是从 UIAlertView 派生的东西。 您要么必须构建自己的 UIAlertView 实现(这比定制一个更像是一场噩梦),或者只是定制一个,这并不像您想象的那么困难。跨度> 我不同意,鉴于我的参数,从头开始编写一个比以面向未来的方式自定义 UIAlertView 更困难。 这基本上就是我所说的。【参考方案3】:

检查我自己的警报视图替换 - 在此处获取应用程序。 https://github.com/FeminaErnest/GeekyFemi。祝你好运

【讨论】:

以上是关于UIAlertView 替换的主要内容,如果未能解决你的问题,请参考以下文章

更改 UIAlertView 中的按钮标题颜色

iphone:UIAlertView 不会消失并阻止 UIProgressView

UIAlertView:点击警报框外部时关闭 UIAlertView [重复]

RMUniversalAlert 的错误 - UIAlertView+Blocks/UIAlertView+Blocks.h 未找到

应用访问地图服务时系统弹出UIAlertView,可以更改UIAlertView的消息吗?

从 UIAlertView 到 UIAlertController