2012-02-06 52 views
1

如果任何人都可以幫助我,那就太好了。在此先感謝最大如果UISearchBar已填充,請更改UITableView setBackgroundColor

如果在UISearchBar中輸入文本,我想要將UITableView setBackgroundColor從clearColor更改爲whiteColor。

即佔位符文本消失。

立即當文本被刪除,即佔位符文本重新出現

所述的UITableView setBackgroundColor恢復到clearColor。

CGRect frame = CGRectMake(0, 140, 320, 170); 

    UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(13, 100, 300, 40)]; 
    [searchBar setDelegate:self]; 
    [searchBar setPlaceholder:@"Species/Common Name"]; 
    [searchBar setShowsCancelButton:YES]; 
    [searchBar setTintColor:kITBarTint]; 
    [self.view addSubview:searchBar]; 

    self.tableView = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain]; 
    [self.tableView setBackgroundColor:[UIColor clearColor]]; 
    [self.tableView setDataSource:self]; 
    [self.tableView setDelegate:self]; 
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
    [self.view addSubview:self.tableView]; 
    [self.tableView setTableHeaderView:header]; 

回答

0

我認爲你應該做的UISearchBarDelegate的方法更改 - (空)searchBarTextDidBeginEditing:(的UISearchBar *)搜索欄

+0

你能更詳細地說明了一點,我需要更多的幫助,一直沒編程目標C很長時間。我會在這種情況下應用if語句嗎? – CraigBellamy 2012-02-06 13:14:46

0

試圖改變在搜索欄的委託函數的顏色,如
- (空)searchBarTextDidBeginEditing :(的UISearchBar *)theSearchBar

  • (無效)搜索欄:(的UISearchBar *)theSearchBar textDidChange:(的NSString *)SEARCHTEXT

並把self.tableView.backgroundColor = [UIColor yourcolor];

1

UISearchBarDelegate Protocol Reference

使用該委託的方法之一:

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 

的UISearchBar擁有財產text這樣你就可以檢查用戶輸入。

例如:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { 
    if([searchText length] > 0) 
    { 
     self.tableView.backgroundColor = [UIColor whiteColor]; 
    } 
    else 
    { 
     self.tableView.backgroundColor = [UIColor clearColor]; 
    } 
} 
2

使用搜索欄委託:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 
    self.searchDisplayController.searchResultsTableView.backgroundColor = [UIColor grayColor]; 
}