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

Posted

技术标签:

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

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

【问题讨论】:

不,亲爱的...一切都保持不变,警报视图的蓝色也保持不变..!! 你想去掉蓝色吗...? 你用过那个.... UIImage *theImage =nil;// [UIImage imageNamed:@"fliperSample2.png"];仍然你得到蓝色...... 【参考方案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

【讨论】:

以上是关于我怎样才能拥有一个完全透明的 UIAlertView?的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能只设置 div 不透明度而不是文本? [复制]

怎样才能使Android RecyclerView透明吗

我怎样才能拥有一个同时包含图像和文本的 UIBarButtonItem?

我怎样才能在春天拥有一个不是 bean 的数据源对象?

我怎样才能拥有一个遵守开闭原则的行为丰富的域实体?

使用 SBT,我怎样才能拥有两个具有不同设置的不同 proguard 任务?