Ich erstelle einen UITableViewController (im Stammverzeichnis eines UINavigationController) und präsentiere das modal auf einem anderen View-Controller. Ich habe es in einem Ausmaß arbeiten, dass, wenn die Ansicht lädt und ViewDidAppear aufgerufen wird, der visuelle Effekt gut aussieht. Aber direkt nach viewDidAppear verschwindet der visuelle Effekt und die Tabellenansicht hat einen weißen Hintergrund.UIVisualEffectView auf UITableView-Hintergrund
In meinem präsentierte UITableViewController, habe ich dies in 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;
}
ich dies auch umzusetzen, um sicherzustellen, dass die Zellen einen klaren Hintergrund haben:
- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
if (NSClassFromString(@"UIVisualEffectView")) {
cell.backgroundColor = [UIColor clearColor];
}
}
ich auch die cell.backgroundColor = [UIColor clearColor]
gesetzt in TableViews cellForRowAtIndexPath:
aber das hilft auch nicht.
Wieder bekomme ich den richtigen Effekt, wenn die Ansicht geladen wird, aber es verliert den Hintergrund verwischen, sobald es auf dem Bildschirm erscheint. Irgendwelche Ideen, was könnte schief gehen? Ich habe auch versucht, die blueEffectView als eine Eigenschaft in meinem View-Controller zu behalten, aber kein Glück
Haben Sie eine Lösung für das Problem? Ich denke, ich habe das gleiche Problem. Nach dem Setzen der BackgroundView 'tableView.backgroundView' habe ich eine hellgraue BackgroundView ** ohne ** Blur-Effekt. – Stone
@Stone Hallo, ich habe das gleiche Problem. Hast du eine Idee? –
@Wongzigii leider nicht. immer noch keine Lösung. – Stone