更改警报视图的颜色

isa*_*thg 0 iphone xcode cocoa-touch objective-c

如何将警报视图框的颜色从蓝色更改为黑色?

任何人请帮助!!

Pyj*_*Sam 7

猜猜你想要这样的事情:

黑色警报视图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行.但它完成了工作.

克里斯.