每个人,我需要在UIAlertView上设置一个图像..
我附上了我的UIAlertview图像问题..
我使用过此代码行..
UIAlertView *theAlert = [[[UIAlertView alloc] initWithTitle:@"Atention"
message: @"YOUR MESSAGE HERE", nil)
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease];
[theAlert show];
UILabel *theTitle = [theAlert valueForKey:@"_titleLabel"];
[theTitle setTextColor:[UIColor redColor]];
UILabel *theBody = [theAlert valueForKey:@"_bodyTextLabel"];
[theBody setTextColor:[UIColor blueColor]];
UIImage *theImage = [UIImage imageNamed:@"Background.png"];
theImage = [theImage stretchableImageWithLeftCapWidth:16 topCapHeight:16];
CGSize theSize = [theAlert frame].size;
UIGraphicsBeginImageContext(theSize);
[theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)];
theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[theAlert layer] setContents:[theImage CGImage]];
请解决此问题.. 我只需要提醒图像..
答案 0 :(得分:6)
试试这个......
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"UIAlert View" message:@"hello" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Close",nil];
UIImage *alertImage = [UIImage imageNamed:@"plus.png"];
UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:alertImage];
backgroundImageView.frame = CGRectMake(0, 0, 282, 130);
backgroundImageView.contentMode = UIViewContentModeScaleToFill;
[alert addSubview:backgroundImageView];
[alert sendSubviewToBack:backgroundImageView];
[alert show];
[alert release];
答案 1 :(得分:4)
您应该考虑不使用UIAlertView,但有自己的AlertView请参阅TSAlertView以获取替代实现,而不是从UIAlertView派生。
TSAlertView允许您设置自己的背景图像。
我不推荐的另一个解决方案可能是:
您可以使用introspection:遍历UIAlertViews子视图,识别隐藏背景图像的那个子视图,并将自己的背景图像放在原始图像视图下方/上方的索引处。
我找到了这个项目:Subclass UIAlertView to customize the look of an alert。它不适用于iOS 4.2+,但凭借我的内省想法,您可以再次使用它:
将-layoutSubviews
的{{1}}更改为:
JKCustomAlert
我不承诺,这个技巧将适用于iOS的未来版本
答案 2 :(得分:0)
我喜欢使用的解决方案是向ViewController添加一个UIView,它模仿警报的外观。 UIAlertView的另一个属性是,在解除警报之前,不能使用应用程序的任何其他部分。通过使你的UIView成为另一个UIView(具有清晰的背景)的子视图,可以很容易地模仿它,它占据了整个屏幕。
如果您不想自己实施,可以使用以下自定义提醒视图课程:https://github.com/shivsak/CustomAlertView