我想在表格视图的表格部分标题中应用模糊效果,类似于您在控制中心中看到的那样。我看过一些GitHub回购,比如iOS-blur和LiveFrost,但它们似乎不起作用。它们实际上不会模糊滚动到节标题的表格单元格,但它们模糊了截面视图的内容,这正是我想要避免的。
有什么建议吗?
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UITableViewCell *headerView = [tableView dequeueReusableCellWithIdentifier:@"SetSelectionHeaderCell"];
headerView.backgroundColor = [UIColor clearColor];
//LFGlassView *glassView = [[LFGlassView alloc] initWithFrame:headerView.frame];
JCRBlurView *glassView = [JCRBlurView new];
[glassView setFrame:headerView.frame];
[glassView setBlurTintColor:[UIColor blackColor]];
[headerView addSubview:glassView];
[headerView sendSubviewToBack:glassView];
return headerView;
}
答案 0 :(得分:1)
您的问题是您要将blurView
添加为headerView的子视图,但headerView的backgroundColor默认为白色,因此不透明。为了查看headerView背后的视图,您需要使headerView透明。您可以通过设置
headerView.backgroundColor = [UIColor clearColor]
iOS-Blur
视图通过模糊其背后的视图来工作。因此,您看到headerView标题标签模糊的原因是因为blurView
在添加标签后作为子视图添加到headerView
。这会将blurView
放在标签前面,作为最顶层的子视图。在将其添加为子视图后,您需要将模糊视图一直发送到后面。
[headerView sendSubviewToBack:blurView];
如果您使headerView
透明,并在后面添加blurView
,则应该可以按照您的意愿使用。
结果应如下所示:
我还应该注意,如果您每次将其作为tableView单元格出列时将子视图添加到headerView
,子视图将会累积。