У меня есть UITableView, данные которого имеют разделы. Я отображаю наложение сверху tableView, которое затемняет его при поиске:
- (UIView *)blackOverlay {
if (!blackOverlay) {
blackOverlay = [[UIView alloc] initWithFrame:[self overlayFrame]];
blackOverlay.alpha = 0.75;
blackOverlay.backgroundColor = UIColor.blackColor;
[tableView insertSubview:blackOverlay aboveSubview:self.parentViewController.view];
}
return blackOverlay;
}
Это прекрасно работает, пока tableView не содержит разделов. Когда tableView содержит разделы и обновления tableView (например, когда представление появляется снова после выталкивания представления из стека контроллера навигации), заголовки разделов отображаются выше blackOverlay. Это оставляет tableView затемненным, за исключением заголовков разделов. Я пытался дозвониться до [tableView bringSubviewToFront:self.blackOverlay]
из viewWillAppear:
, но у меня такое же поведение.
Мой текущий обходной путь возвращает nil для заголовков разделов tableView, пока присутствует наложение, но это оставляет пробелы в пробелах наложенного tableView, где ранее были заголовки разделов.
Как сделать так, чтобы заголовки разделов tableView никогда не отображались выше blackOverlay? Или, возможно ли создать представление перед tableView из подкласса UITableViewController, который не является подвидом tableView?