带有自定义按钮的自定义 UIAlertView
Posted
技术标签:
【中文标题】带有自定义按钮的自定义 UIAlertView【英文标题】:Custom UIAlertView with Custom Buttons 【发布时间】:2011-06-22 10:34:42 【问题描述】:我需要显示一个自定义 UIAlertView,它将有一个图像作为背景和两个自定义按钮,它们不是常规的 UIAlertView 按钮。这些按钮也将被自定义,并拥有自己的艺术作品。
上面的例子有背景,但我也想在上面添加自定义按钮。
我正在关注this 指南,但我认为它没有解决自定义按钮处理问题。
如何做到这一点?有什么想法吗?
【问题讨论】:
【参考方案1】:Apple 似乎不喜欢你过度定制 UIAlertView,而且我听说有很多情况下他们拒绝了应用进入应用商店的情况。
由于您所追求的自定义程度,我建议您创建自己的新 Alert 类,该类具有动画效果并具有背景阴影等,并带有可以自定义位置/外观的按钮。
【讨论】:
【参考方案2】:我发现 Jeff LaMarche 的这篇博文对制作自定义警报视图非常有帮助:http://iphonedevelopment.blogspot.com/2010/05/custom-alert-views.html。他完成了创建自定义类的步骤,因为修改 UIAlertView 可能会导致 App Store 拒绝(但是他警告说,使用自定义技术仍然会导致 HIG 违规,但我怀疑它们会不会影响您正在尝试做的事情)。完成后,您将拥有一个自定义警报视图类,可以添加与 UIAlertView 大致相同的样式:
至此,我们完成了。我们现在可以 完全使用此自定义警报视图 我们使用 UIAlertView 的方式相同:
CustomAlertView *alert = [[CustomAlertView alloc] init]; alert.delegate = self; [alert show]; [alert release];
他创建了一个自定义文本输入视图。显然,在您的情况下,您可能希望使用不同的背景,而不是添加文本字段,而是只使用按钮。由于他也在他的视图中制作了自定义按钮,因此它应该可以满足您的所有需求,甚至更多。
【讨论】:
【参考方案3】:不幸的是,Apple 不允许子类化 UIAlertView:
UIAlertView 类旨在按原样使用,而不是 支持子类化。此类的视图层次结构是私有的,并且 不得修改。
最简单的方法是创建您自己的具有类似行为的类。
这是一个例子: http://iosdevtricks.blogspot.com/2013/04/creating-custom-alert-view-for-iphone.html
【讨论】:
以上是关于带有自定义按钮的自定义 UIAlertView的主要内容,如果未能解决你的问题,请参考以下文章