UIView在UIAlert

时间:2012-09-21 04:57:03

标签: iphone objective-c ios uialertview

我想在UIView中显示UIAlert,并且警报应显示在所有其他视图中,以及应用程序在后台运行时。可能吗 ?如果不是那我该怎么办?

3 个答案:

答案 0 :(得分:1)

试用此代码: -

在viewdidload方法中:

-(void)viewDidLoad
{
    flag=YES;
    [super viewDidLoad];
}

N viewWillAppear方法:

-(void)viewWillAppear:(BOOL)animated
{
    v=[[UIView alloc]initWithFrame:CGRectMake(0, 490, 320, 300)];
    v1.layer.cornerRadius = 10.0;
    v1.clipsToBounds = YES;
    v1.frame=CGRectMake(0, 490, 320, 108);
}

并且

-(IBAction)btn_Clicked
{

    if (flag == NO)
    {
        v=[[UIView alloc]initWithFrame:CGRectMake(0, 490, 320, 300)];
        v1.layer.cornerRadius = 10.0;
        v1.clipsToBounds = YES;
        v1.frame=CGRectMake(0, 490, 320, 108);

        v.hidden=NO;
        v.frame=CGRectMake(0, 0, 320, 460);
        v.backgroundColor=[UIColor colorWithWhite:0 alpha:0.2];
        [self.view addSubview:v];

        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        v1.frame=CGRectMake(69, 176, 185, 108);
        [v addSubview:v1];

        [UIView commitAnimations];

    }
    else
    {
        v.hidden=NO;
        v.frame=CGRectMake(0, 0, 320, 460);
        v.backgroundColor=[UIColor colorWithWhite:0 alpha:0.2];
        [self.view addSubview:v];

        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        //v1.backgroundColor=[UIColor colorWithWhite:0 alpha:0.3];
        v1.frame=CGRectMake(69, 176, 185, 108);
        [v addSubview:v1];

        [UIView commitAnimations];
    }

}

并且

-(IBAction)cancel_Clicked
{
    flag=NO;
    v.hidden=YES;
}

答案 1 :(得分:0)

当您的应用进入后台时,您在显示UIAlertView时没有那么多访问权限,您可以尝试UILocalNotification

但我想你想要一个自定义的自定义弹出窗口。

尝试创建UIView并设置Interface Builder的属性。并添加为子视图。

UIView *v = [[UIView alloc] initWithFrame:CGRectMake(30, 30, 290, 290)];
[self.view addSubView:v];

但是一旦你的应用程序处于后台,就不能再做任何事了。

答案 2 :(得分:0)

您可以在UIAlertView中添加UIView,
但是你不能在后台运行应用程序,它只是通知风格。