【发布时间】:2010-10-07 18:46:51
【问题描述】:
任何人都有代码来做这个:
(来源:booleanmagic.com)
或者更好的是,使用 UIAlertView 对象的带有图像的 3x2 按钮网格?
我不关心文本字段,它是我想要的网格中的按钮(最好是图像而不是文本)。
【问题讨论】:
标签: iphone uialertview
任何人都有代码来做这个:
(来源:booleanmagic.com)
或者更好的是,使用 UIAlertView 对象的带有图像的 3x2 按钮网格?
我不关心文本字段,它是我想要的网格中的按钮(最好是图像而不是文本)。
【问题讨论】:
标签: iphone uialertview
我认为最好的办法是忘记自定义 UIAlert 视图并自己构建自定义视图。
首先,您所显示的实际上并不是“警报”,因此它与 UIAlertView 的设计目的背道而驰。这意味着您正在更改用户的 UI 范例,这绝不是一个好主意。
其次,将自定义视图设置为动画比尝试破解 UIAlertView 让它做你想做的事情要容易得多。
【讨论】:
首先,您需要将警报框放大以容纳您的控件,但它必须放在中心。
为此,您无需设置帧大小,而是将带有“\n”的消息文本作为 necc。例如:
alert = [[UIAlertView alloc] initWithTitle:@"Rate this picture."
message:@"Tap a star to rate.\n\n\n\n " /*------ look at here!!----*/
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];
然后为警报视图使用 UIAlertViewDelegate。
覆盖它的 viewWillAppear: 添加您的按钮并将其框架手动设置在所需位置。
或者: 使用视图控制器创建一个完整的视图,并将该视图添加到警报框中,例如:
[myalertview addSubvew:mycomplexalert];
希望这会对您有所帮助:)
我正在使用警报框通过星图、推特、fb 反馈等进行评分输入。
更新 iOS7:
对于 iOS 7,使用组件创建自己的视图并将其设置为 alertview 的附属视图:
[alert setValue:imageView forKey:@"accessoryView"];
这很简单:-)
【讨论】:
This tutorial 介绍了如何继承 UIAlertView 来实现输入文本框。它解释了如何放大视图、添加子视图(如文本框或图像)以及进行转换以将框在屏幕上向上移动。
【讨论】:
我写了一个几乎像素完美的 UIAlertView 替代品,它也是完全可配置的。看看CODialog 是否符合您的需求。
【讨论】:
没有用于此的内置组件。根据 HIG 文档,UIAlertView 应该只有文本和按钮。
您必须创建自己的视图并向其添加控件。 SDK 中的 HeadsUpUI 示例展示了如何将自定义菜单式视图显示为叠加层。
希望对您有所帮助。
【讨论】: