如何在UIAlertView for iOS 7中添加子视图?

Apu*_*urv 22 objective-c uialertview ios ios7

我有在iTunes商店它显示了一些应用程序UILabelUIWebViewUIAlertView.根据会议视频,addSubViewUIAlertView不起作用.他们已经谈过了ContentView.但在GM种子SDK中,我找不到该属性,似乎没有别的办法.

我唯一能做的就是创建一个自定义子类UIView并使其工作UIAertView.你能建议其他简单的解决方案吗?

谢谢您的帮助.

mal*_*lex 103

您可以在iOS7中将accessoryView更改为customContentView(似乎在iOS8中也是如此)UIAlertView

[alertView setValue:customContentView forKey:@"accessoryView"];
Run Code Online (Sandbox Code Playgroud)

试试这段代码:

UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"TEST" message:@"subview" delegate:nil cancelButtonTitle:@"NO" otherButtonTitles:@"YES", nil];
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 80, 40)];
[av setValue:v forKey:@"accessoryView"];
v.backgroundColor = [UIColor yellowColor];
[av show];
Run Code Online (Sandbox Code Playgroud)

请记住,您需要在调用之前设置自定义accessoryView [alertView show]

在此输入图像描述

  • 我在生产应用程序中使用它.但是,在iOS8中,这不再有效. (8认同)
  • 检查IOS版本的后兼容性,否则[av setValue:v forKey:@"accessoryView"]; 会崩溃的应用程序 (4认同)
  • 这个问题和答案仅适用于iOS 7.但无论如何,谢谢你的评论. (2认同)

Apu*_*urv 10

iOS 7无法实现AddSubview.

唯一的方法是创建一个自定义UIView子类,它可以充当UIAlertView.我可以在Github上找到一些组件.

链接的自定义警报似乎运作良好.通过进行适当的版本检查,可以识别出本机UIAlertView或CustomAlertView.