如何在 iOS 8 上显示没有按钮的 UIAlertView?
Posted
技术标签:
【中文标题】如何在 iOS 8 上显示没有按钮的 UIAlertView?【英文标题】:How to display UIAlertView without buttons on iOS 8? 【发布时间】:2014-08-28 12:39:38 【问题描述】:在我正在开发的应用程序中,我们有一些遗留代码在应用程序的多个点显示定时 UIAlertViews。这些是在消失之前显示一定时间(比如 2 秒)的警报视图。
这些警报视图没有按钮,只有标题和消息。不知何故,这些警报视图在 ios 5、6 和 7 上运行良好,但在 iOS 8 上不再显示消息标签。
有没有人能解决这个问题?我应该注意我们对使用 UIAlertController 不感兴趣,因为该类仅限于 iOS 8,而且我们还需要支持旧版本。
所以我的问题如下:是否可以在 iOS 8 上显示仅带有标题和消息以及 NO 按钮的 UIAlertView? (请注意:消息应该正确显示)。
【问题讨论】:
显示用于显示这些警报的代码。它是用 initWithTitle... 构建的吗?论据是什么? 我可以使用 Xcode 6b6 重现它。这显然是一个错误。 我也有同样的问题。 @MarekR:我在下面描述了我解决此问题的方法。我应该注意我不能共享任何代码(我的雇主不允许)。 我真的很高兴你添加了(PLEASE NOTE: the message should be shown properly)
,即将发布一个令人尴尬的无用答案嘿
【参考方案1】:
对于仍在为这个问题苦苦挣扎的人,我使用了以下方法:
我创建了一个 AlertController 类来决定使用哪个版本的警报视图。对于 iOS 7 及更低版本,将默认使用“内置”UIAlertView。对于 iOS 8,我使用了自定义警报视图。
有几个自定义警报视图可用于创建显示几秒钟的模式对话框。我的自定义警报视图基于iOS Custom Alert View 项目中的代码。此外,我修复了外观和感觉。可以说,这个项目的默认外观与 iOS 7 / 8 的外观和感觉并不紧密匹配,尤其是在按钮方面。弹出/隐藏动画虽然做得很好。修复外观需要创建一个自定义对话框视图类,该类使用-drawRect:
在按钮周围绘制线条。自定义子视图还将添加它自己的按钮。
SDCAlertView 是另一个可能具有更好的开箱即用外观和感觉的替代项目。如果我在开始修复 iOS 自定义 AlertView 的工作之前找到了 SDCAlertView,我可能会节省一些时间。
我应该注意我不能分享我的代码/更改。我的雇主根本不喜欢这样。
【讨论】:
【参考方案2】:您可以为您的 UIAlert 尝试此代码:
let alert = UIAlertView()
alert.title = "Title"
alert.message = "Message"
alert.show()
它应该显示一个没有按钮的 UIAlert。
希望对你有帮助。
【讨论】:
以上是关于如何在 iOS 8 上显示没有按钮的 UIAlertView?的主要内容,如果未能解决你的问题,请参考以下文章
iOS 8 上的 UIActivityViewController 显示带有自定义活动的“更多”按钮