我怎样才能拥有完全透明的UIAlertView?

时间:2012-09-03 07:17:35

标签: objective-c uialertview transparent

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

3 个答案:

答案 0 :(得分:4)

如果你看Apple's documentation page for UIAlertView,你会看到这个说明:

  

UIAlertView类旨在按原样使用,但不是   支持子类化。 此类的视图层次结构是私有的   不得修改。

换句话说,就UIAlertView而言,Apple不希望开发人员使用颜色或字体或背景。如果Apple在以后的iOS中更改UIAlertView的内部内容,那么当修改后的警报出现时,您的应用可能会产生意外和不希望的效果。

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

答案 1 :(得分:0)

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

您可以尝试BlockAlertsAnd-ActionSheets,它就像一个可自定义的UIAlerView https://github.com/gpambrozio/BlockAlertsAnd-ActionSheets

答案 2 :(得分:0)

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

·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
}
相关问题