Iphone 更改警报视图的颜色

Iphone 更改警报视图的颜色,iphone,objective-c,cocoa-touch,xcode,Iphone,Objective C,Cocoa Touch,Xcode,如何将警报视图框的颜色从蓝色更改为黑色 任何人请帮忙 不,你不能。您必须创建一个自定义视图,并使用presentModalViewController来显示它,猜测您想要这样的东西: 为了实现这一点,我只是对alert视图进行了子类化,以便在中添加一些自己的代码 我创建了一个背景图像视图,在其中放置了一个黑色版本的警报框 当调用drawRect时,我将调整背景图像视图的大小,使其具有正确的高度和宽度 这有点像黑客,但它没有违反苹果制定的任何准则(我现在在商店里有一个应用程序正在使用这个) 为了

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


任何人请帮忙

不,你不能。您必须创建一个自定义视图,并使用presentModalViewController来显示它,猜测您想要这样的东西:

为了实现这一点,我只是对alert视图进行了子类化,以便在中添加一些自己的代码

我创建了一个背景图像视图,在其中放置了一个黑色版本的警报框

当调用drawRect时,我将调整背景图像视图的大小,使其具有正确的高度和宽度

这有点像黑客,但它没有违反苹果制定的任何准则(我现在在商店里有一个应用程序正在使用这个)

为了得到一个好的背景图像,我只是从UI工具包中提取了图像(用谷歌搜索,你会知道怎么做),并制作了一个黑色版本而不是蓝色版本

这些按钮实际上是透明的,可以拾取它们下面的任何颜色。所以没有必要改变它们

希望有帮助

这确实是可能的。而且也很容易。总共大约5行代码;-)

编辑:Ask和yee将收到

@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
就像我说的,它不是purdy,事实上,它不止5行。但它完成了任务


克里斯。

对不起,我弄错了。。这应该是UIImage而不是ImageCache(我有自己的图像缓存组件,它在我从中提取此代码的项目中使用)。我已经编辑了上面的代码来纠正这一点。