-1

UIView表示したいのですがUIAlert、アラートは別のすべてのビューに表示され、アプリケーションがバックグラウンドで実行されている場合にも表示されます。出来ますか ?いいえの場合、どうすればできますか?

4

3 に答える 3

1

このコードを試してください:-

ビューのdidloadメソッドで:

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

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;
}
于 2012-09-21T06:15:54.467 に答える
0

アプリがバックグラウンドに入ると、表示UIAlertViewにあまりアクセスできません。試すことができますUILocalNotification

しかし、独自のビューであるカスタムポップアップが必要だと思います。

UIViewを作成してからプロパティを設定してみてくださいInterface Builder。サブビューとして追加します。

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

ただし、アプリがバックグラウンドになると、何もできなくなります。

于 2012-09-21T05:03:24.377 に答える
0

UIAlertView に UIView を追加でき
ますが、バックグラウンドで実行されているアプリケーションはできません。通知スタイルのみです。

于 2012-09-21T05:27:28.737 に答える