我怎样才能拥有一个完全透明的 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?的主要内容,如果未能解决你的问题,请参考以下文章