我正在创建一个 UITableViewController(在 UINavigationController 的根目录),并以模态方式将其呈现在另一个视图控制器之上。我让它在一定程度上工作,这样当视图加载并调用 viewDidAppear 时,视觉效果看起来不错。但是在 viewDidAppear 之后,视觉效果消失了,tableview 有一个白色的背景。
在我呈现的 UITableViewController 中,我在 viewDidLoad 中添加了这个:
if (NSClassFromString(@"UIVisualEffectView") && !UIAccessibilityIsReduceTransparencyEnabled()) {
self.tableView.backgroundColor = [UIColor clearColor];
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
[blurEffectView setFrame:self.tableView.frame];
self.blurView = blurEffectView;
self.tableView.backgroundView = self.blurView;
}
我也实现了这一点,以确保单元格具有清晰的背景:
- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
if (NSClassFromString(@"UIVisualEffectView") ) {
cell.backgroundColor = [UIColor clearColor];
}
}
我还在cell.backgroundColor = [UIColor clearColor]
tableView 中设置了,cellForRowAtIndexPath:
但这也无济于事。
同样,当视图加载时,我得到了正确的效果,但它一出现在屏幕上就会失去模糊背景。有什么想法可能会出错吗?我也尝试将 blueEffectView 作为属性保留在我的视图控制器中,但没有运气