【问题标题】:how can I have a totally transparent UIAlertView?我怎样才能拥有一个完全透明的 UIAlertView?
【发布时间】:2012-09-03 07:17:34
【问题描述】:

我需要一个 UIALertView,它在弹出时应该足够透明,以便以褪色的方式显示 alertview 后面的背景,并且不应该出现警报视图的蓝色,因为警报视图后面的背景是黑色和灰色颜色。更改颜色并将图像放入警报视图是可以在链接中看到的一件事:iOS 5 black transparent UIAlertViewChanging the background color of a UIAlertView?
但我需要一个透明的 UIAlertView。有可能得到一个吗?如果是,怎么办? 提前感谢您的帮助。

【问题讨论】:

  • 不,亲爱的...一切都保持不变,警报视图的蓝色也保持不变..!!
  • 你想去掉蓝色吗...?
  • 你用过那个.... UIImage *theImage =nil;// [UIImage imageNamed:@"fliperSample2.png"];仍然你得到蓝色......

标签: objective-c uialertview transparent


【解决方案1】:

如果你查看Apple's documentation page for UIAlertView,你会看到这个注释:

UIAlertView 类旨在按原样使用,而不是 支持子类化。 这个类的视图层次是私有的,并且 不得修改。

换句话说,Apple 不希望开发人员在涉及 UIAlertView 时为颜色、字体或 背景 乱七八糟。如果 Apple 在更高版本的 iOS 中更改了 UIAlertView 的内部内容,那么当该修改后的警报出现时,您的应用可能会产生意外和不希望的效果。

如果您想要自定义 UIAlertView 类似的行为,为什么不直接编写您自己的 UIView,使其外观和行为与 UIAlertView 非常相似。然后你就可以完全控制它的绘制方式。

【讨论】:

  • 所以你的意思是自定义 UIAlertView...对..??..但是如何使它透明..!!..??..如果这样的事情可能,请帮助。 .!!
【解决方案2】:

正如迈克尔所说,你不能使用 UIAlertView,你必须自己构建它。

你可以试试 BlockAlertsAnd-ActionSheets,它就像一个可定制的 UIAlerView https://github.com/gpambrozio/BlockAlertsAnd-ActionSheets

【讨论】:

  • 我试过这个,但是那里的警报视图也没有变得透明......无论如何,谢谢你的建议..!! :)
【解决方案3】:

我知道为时已晚,但是, 我会把这个命令留给其他开发者。

.h

@interface CustomAlertView:UIAlertView {}

.m

// override
- (void)drawRect:(CGRect)rect
{
    for(UIView * sub in self.subviews)
    {
        [sub removeFromSuperview];
    }
    // this removeFromSuperview will clear all thing such as background view and buttons

    // do something
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-16
    • 2017-11-10
    • 2017-09-02
    • 2023-01-07
    • 2010-09-25
    • 1970-01-01
    • 2021-10-24
    • 2011-01-07
    相关资源
    最近更新 更多