UIAlertview valueForKey:@“_ backgroundImageView”

时间:2013-10-24 17:44:58

标签: ios uialertview

我想更改ui警报视图的文本颜色和背景颜色。我使用以下代码, UILabel * theTitle = [alertView valueForKey:@“_ titleLabel”];         [theTitle setTextColor:[UIColor whiteColor]];

    UILabel *theBody = [alertView valueForKey:@"_bodyTextLabel"];
    [theBody setTextColor:[UIColor whiteColor]];


  UIImageView *backgroundImageView = (UIImageView *)[alertView valueForKey:@"_backgroundImageView"];
   [backgroundImageView setImage:[UIImage imageNamed:@"background.png"]];

这在ios 6中工作正常。但升级到ios 7后,此方法无效。我不想创建自定义uialertview。请建议任何简单的解决方案来解决这个问题。

2 个答案:

答案 0 :(得分:0)

从iOS7开始,UIAlertViews不再可自定义。

你必须坚持自己的风格,或者从UIView创建自己的风格,但你无法改变它。

答案 1 :(得分:0)

在iOS7中,UIAlertView只是一个数据容器。它只需要您设置的参数,并在私有窗口的私有视图层次结构中显示它们。您的警报视图永远不会添加到任何视图层次结构中。

滚动您自己的警报视图实现或使用开源源代码实现,例如DTAlertView:https://www.cocoacontrols.com/controls/dtalertview