Objective c presentModalViewController半透明,背景中有上一个视图

Objective c presentModalViewController半透明,背景中有上一个视图,objective-c,ios,uikit,Objective C,Ios,Uikit,我试图呈现一个半透明的视图,前一个视图会在背景中保持可见 我有 [self presentModalViewController:modalView animation:YES]; 我在modalView的viewDidLoad中设置了透明度,但是在打开modalView后,上一个视图消失了。我怎样才能使另一个视图保持在背景中 我也试着用 [self.view addSubview:modalView.view]; 它没有覆盖整个屏幕,我希望能够使用presentModalViewContr

我试图呈现一个半透明的视图,前一个视图会在背景中保持可见

我有

[self presentModalViewController:modalView animation:YES];
我在modalView的viewDidLoad中设置了透明度,但是在打开modalView后,上一个视图消失了。我怎样才能使另一个视图保持在背景中

我也试着用

[self.view addSubview:modalView.view];

它没有覆盖整个屏幕,我希望能够使用presentModalViewController方法解决此问题。

听起来您只是希望在主视图的顶部显示一个视图。模态视图是表示子视图的一种非常挑剔的方式,相反,您应该考虑创建一个简单的视图类来添加到视图控制器中。然后可以使用[UIView animate…];方法在视图内外设置动画

要开始,请执行以下操作:

- (void)displayViewButtonPressed(id)sender
{

    if (!self.topView)
    {
        UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(44.0f, 22.0f, 40.0f, 44.0f];
        [overlayView setAlpha:0.0f];
        [overlayView setBackgroundColor:[UIColor redColor]];
        [self setTopView:overlayView];
        [overlayView release];
    }

    [self.view addSubView:self.topView];

    [UIView animateWithDuration:0.5
            animations:^{

                [self.topView setAlpha:1.0f];
            }];
}
在上面的方法中,我们创建一个自定义UIView并将其设置为动画。我们保留一个指向它的指针,以便以后可以像这样删除它:

- (void)dismissViewButtonTapped:(id)sender
{
    [UIView animateWithDuration:0.5
            animations:^{
                [self.topview setAlpha:0.0f];
            }
            completion:^(BOOL finished) {
                [self.topView removeFromSuperView];
            }
}
使用模态视图比使用模态视图要多做一些工作,但它在使用什么以及如何显示方面给了您更大的灵活性


希望这有帮助:

谢谢!我会用我的代码试试看,然后告诉你它是否有效