猜猜你想要这样的事情:
黑色警报视图http://img.skitch.com/20100405-n2ka11en1u63kcpfu6x7et29mc.jpg
为了实现这一点,我只是将警报视图子类化,以便我可以添加一些我自己的代码.
我创建了一个背景图像视图,我在其中放置了黑色版本的警报框.
当调用drawRect时,我将背景图像视图的大小调整为正确的高度和宽度.
它有点像黑客,但它并没有违反苹果公司制定的任何指导原则(我现在在商店里有一个应用程序使用它).
为了获得良好的背景图像,我只是从UI工具包中提取了图像(谷歌,你会发现如何),只是制作了黑色版本而不是蓝色版本.
这些按钮实际上是透明的,可以拾取它们下面的颜色.所以不需要改变它们.
希望有所帮助.
这确实是可能的.而且也很容易.总共约5行代码;-)
编辑:问问,我们会收到
@implementation BlackAlertView
- (void) drawRect:(CGRect) rect
{
//Force our background image to be the right size.
_backgroundImageView.frame = rect;
}
- (void) dealloc
{
ReleaseAndNull(_backgroundImageView);
[super dealloc];
}
- (void)show
{
UIImage *alertBoxImage = [[UIImage imageNamed:@"UIPopupAlertSheetBackground_black.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:40];
_backgroundImageView = [[UIImageView alloc] initWithImage:alertBoxImage];
[self addSubview:_backgroundImageView];
[self sendSubviewToBack:_backgroundImageView];
[super show];
}
@end
Run Code Online (Sandbox Code Playgroud)
就像我说它不是purdy,实际上它只有5行.但它完成了工作.
克里斯.