Как добавить пользовательский фон в табличное представление UISearchDisplayController?

StackOverflow https://stackoverflow.com/questions/1617224

  •  06-07-2019
  •  | 
  •  

Вопрос

Я хочу добавить пользовательский UIImageView к фону табличного представления UISearchDisplayController и установить цвет фона табличного представления в clearColor. Пробовал несколько другой подход, но не смог найти правильное решение. Есть идеи, как к этому подойти?

Примечание: я не хочу добавлять в иерархию представления searchResultsTableView searchDisplayController, а вместо этого накладываю на нее другое одноуровневое представление)

Это было полезно?

Решение

Вы можете установить фоновое изображение таким же образом, как и для основной таблицы, установите его только в методе делегата searchDisplayControllerDidBeginSearch. Например: -

- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller {
[controller.searchResultsTableView setDelegate:self];
UIImageView *anImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"gradientBackground.png"]];
controller.searchResultsTableView.backgroundView = anImage;
[anImage release];
controller.searchResultsTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
controller.searchResultsTableView.backgroundColor = [UIColor clearColor]; }

Другие советы

Вы также можете делать это везде, где вы создаете экземпляр UISearchDisplayController . В моем приложении я делал это в своем методе UITableView viewDidLoad и сопоставлял стили между двумя таблицами:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.tableView.separatorColor = [UIColor blackColor];
    self.tableView.backgroundColor = [UIColor grayColor];
    self.tableView.indicatorStyle = UIScrollViewIndicatorStyleWhite;

    searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    searchController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
    searchController.delegate = self;
    searchController.searchResultsDataSource = self;
    searchController.searchResultsDelegate = self;

    searchController.searchResultsTableView.separatorColor = self.tableView.separatorColor;
    searchController.searchResultsTableView.backgroundColor = self.tableView.backgroundColor;
    searchController.searchResultsTableView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top