2011-10-17 76 views
0

我試圖呈現一個半透明的視圖,並且前一個視圖仍然存在並且在背景中可見。presentModalViewController半透明與背景中的前一個視圖

我有

[self presentModalViewController:modalView animation:YES]; 

,我有透明度的modalView的viewDidLoad設置,但modalView被撫養長大後,以前的視圖中消失。我能做些什麼來保持其他觀點留在後臺?

我也試圖與

[self.view addSubview:modalView.view]; 

它不覆蓋整個屏幕加入的話,我想是能夠解決使用presentModalViewController方法這個問題。

回答

0

這聽起來像你只是想要在你的主視圖上顯示一個視圖。模態視圖是呈現子視圖的一種非常挑剔的方式,相反,您應該查看創建一個簡單的視圖類以添加到視圖控制器。然後你可以使用[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]; 
      } 
} 

它多一點的工作,使用模式的看法,但它給你的問候更多的靈活性,你用什麼和如何顯示它。

希望這會有所幫助:)

+0

謝謝!我會用我的代碼嘗試一下,並讓它知道它是否有效 –