0
模糊的UITableView後面UIAlertController

我想我的模糊UITableView(內UITableViewController),當我提出一個UIAlertControllerUIAlertControllerStyleActionSheet),但使用UIBlurEffectUIVisualEffectView不模糊表視圖的背後內容時;它只是阻止它。在模擬器和設備上都會發生。嘗試過的UITableViewController

- (void)showAlert { 
    UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; 

    UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; 
    visualEffectView.frame = CGRectMake(0, self.tableView.contentOffset.y, self.view.frame.size.width, self.view.frame.size.height); 

    [self.view addSubview:visualEffectView]; 

    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Alert Title" message:@"Alert Message" preferredStyle:UIAlertControllerStyleActionSheet]; 

    [alert addAction:[UIAlertAction actionWithTitle:@"Action 1" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { 
     // handle choice... 

     [visualEffectView removeFromSuperview]; 
    }]]; 

    [alert addAction:[UIAlertAction actionWithTitle:@"Action 2" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { 
     // handle choice... 

     [visualEffectView removeFromSuperview]; 
    }]]; 

    [self presentViewController:alert animated:YES completion:nil]; 
} 

截圖:

enter image description here

有一個在動作片材應該後面表視圖文本內容被顯示爲模糊,例如這樣的形象:

enter image description here

+0

你可以嘗試visualEffectView.frame = self.view.bounds; ? – HMHero

+0

已經試過了。沒有區別 – shim

+0

經過測試的東西,似乎'UIBlurEffect'無論如何都不適用於文本。 – shim

回答

-1

我試圖對視圖,它工作正常。我在你的代碼中做了一些改變。

- (void)showAlert { 
    UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; 

    UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; 
    visualEffectView.frame = CGRectMake(0, self.view.frame.size.height/2, self.view.frame.size.width, self.view.frame.size.height); 

    //self.vBlur.backgroundColor = [UIColor clearColor]; 
    [self.view addSubview:visualEffectView]; 

    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Alert Title" message:@"Alert Message" preferredStyle:UIAlertControllerStyleActionSheet]; 

    [alert addAction:[UIAlertAction actionWithTitle:@"Action 1" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { 
     // handle choice... 

     [visualEffectView removeFromSuperview]; 
    }]]; 

    [alert addAction:[UIAlertAction actionWithTitle:@"Action 2" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { 
     // handle choice... 

     [visualEffectView removeFromSuperview]; 
    }]]; 

    [self presentViewController:alert animated:YES completion:nil]; 
} 

screenshot

another screenshot?

+0

你的截圖對我來說不好看。 – shim

+0

爲什麼?它有什麼問題? 你想要它全屏嗎? – jiten

+0

這看起來模糊嗎?這只是一個深色的背景,在動作表背後。 – shim