我刚刚阅读了 iOS人机界面指南。在关于警报,操作表和模态视图的章节中(参见here),我找到了这一行:
警报的背景外观 是系统定义的,不可能 改变。
在我的应用程序中,我创建了自己的UICustomAlert,继承自UIAlertView类,以下方法:
- (id)initWithImage:(UIImage *)image andButton:(UIButton *)button
{
if (self == [super init])
{
self.backgroundImage = image;
self.bigButton = button;
}
return self;
}
- (void)drawRect:(CGRect)rect
{
CGSize imageSize = self.backgroundImage.size;
[self.backgroundImage drawInRect:CGRectMake(0, 0, imageSize.width, imageSize.height)];
[self addSubview:bigButton];
}
- (void) show
{
[super show];
CGSize imageSize = self.backgroundImage.size;
self.bounds = CGRectMake(0, 0, imageSize.width, imageSize.height);
}
- (void)didAddSubview:(UIView *)subview
{
if ([subview isMemberOfClass:[UIImageView class]])
[subview removeFromSuperview];
}
我以这种方式创建我的UICustomAlert:
UIAlertView *alert = [[UICustomAlert alloc] initWithImage:backgroundImage andButton:bigButton];
[alert show];
它允许我显示具有透明背景的UIAlert,并且只显示一个图像(backgroundImage
)。
但是知道iOS HIG中的内容,您认为Apple会拒绝该应用吗?
感谢。
答案 0 :(得分:1)
我的直觉是你可能安全。没有什么可以阻止你从头开始实现这样的东西。但是我因为没有关注HIG而拒绝了应用程序(他们不喜欢我讲错误信息的方式),所以它们不仅仅是“指南”。