2009-10-24 16 views
8

UISearchDisplayController'ın tablo görünümü arka planına özel bir UIImageView eklemek ve tablo görünümünde arka plan rengini clearColor olarak ayarlamak istiyorum. Birkaç farklı yaklaşım denedim ama doğru çözümü bulamadım. Buna nasıl yaklaşılacağına dair bir fikrin var mı?UISearchDisplayController'ın tablo görünümüne nasıl özel bir arka plan eklenir?

Not: Ben, yalnızca searchDisplayController en searchResultsTableView görüşüne hiyerarşiye eklemek değil, Size ana tablo için olur benzer şekilde arka plan resmini ayarlayabilirsiniz

+0

Bunu çözmek için bir yol bulmak mı? – swalkner

+0

Henüz bunun için bir çözüm bulunmadı. – Boon

+0

Merhaba, Aynı şeyi kendim yapmaya çalışıyorum. Bu işe nasıl başladınız? Şimdiden teşekkürler, Matt – Sway

cevap

25

altında başka kardeş görünümü) bindirmek istemiyoruz searchDisplayControllerDidBeginSearch temsilci yöntemine ayarlayın. Örneğin: - Eğer UISearchDisplayController örneğini yerde

- (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]; } 
+0

Bu benim için çalıştı! – adamweeks

+5

Bu iyi çalışıyor olsa da, muhtemelen şunu yapabilirsiniz: searchDisplayController: didLoadSearchResultsTableView: '. Bu şekilde, yalnızca bir arama başlatıldığında her seferinde değil, yalnızca gerekli olduğunda tabloyu kurarsınız. (Ayrıca tablo görünümüne daha kolay erişim elde edersiniz, böylece "controller.searchResultsTableView" yerine 'tableView' kullanabilirsiniz.) – robotspacer

3

Ayrıca yapabilirsiniz. Benim app benim UITableViewviewDidLoad yönteminde bu yaptığını ve iki tablo arasındaki stilleri eşleşen edildi:

- (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; 
} 
İlgili konular