2012-05-16 86 views
1

我使用UISearchDisplayController進行搜索,並希望讓更多的元素添加到每個單元格,如果這是可能的。做了一些搜索,但找不到任何信息。唯一的方法是用tableview來重現它。是否有任何其他的屬性我可以設置其他然後textlabel.text有沒有一種方法來定製UISearchDisplayController細胞

提前感謝!

+0

非常感謝您的答覆!我設置detailtextlabel.text並沒有顯示,所以我認爲它不可能自定義單元格。我厭倦了imageview,它的工作原理。順便說一句有一種方法來定製界面生成器中的單元格,或者我將不得不以編程方式創建它? – Yan

回答

1

是的,你可以設置cell.imageView,cell.accessoryView,cell.BackGroundView ..等

閱讀更多信息

3

很有可能這個UITableViewCell文檔。所有的tableView數據源方法都使用tableView參數來調用。如果

if (tableView == searchController.searchResultsTableView) 

然後通過添加子視圖或自定義屬性來更改單元格。在這種情況下,同樣的方法適用於自定義單元格。

5

您可以完全改變細胞。

如下片段依賴於UITableCell,ANormalCell & ASearchCell的兩個子類。

警告:此代碼尚未編制,但你的要點?

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *normalCellReuseIdentifier = @"ANormalCell"; 
    static NSString *searchCellReuseIdentifier = @"ASearchCell"; 

    UITableViewCell* cell = nil; 

    if (tableView != self.searchDisplayController.searchResultsTableView) { 
     cell = (ANormalCell*)[self.tableView dequeueReusableCellWithIdentifier:normalCellReuseIdentifier]; 

     if (cell == nil) { 
      NSArray* topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ANormalCell" owner:nil options:nil]; 
      cell = (ANormalCell*)[topLevelObjects objectAtIndex:0]; 
     } 
    } else { 
     cell = (ASearchCell*)[self.tableView dequeueReusableCellWithIdentifier:searchCellReuseIdentifier]; 

     if (cell == nil) { 
      NSArray* topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ASearchCell" owner:nil options:nil]; 
      cell = (ASearchCell*)[topLevelObjects objectAtIndex:0]; 
     } 
    } 

    return cell; 
} 
+0

謝謝!我正在使用故事板。我不認爲有一種方法只用一個單元創建一個筆尖。我檢查了故事板,並沒有看到在那裏定製uisearchdisplaycontroller單元的方法。 – Yan

+0

故事板和XIB可以一起使用(在同一個項目中),使用XIB設計自定義單元是我個人做的很多事情。 – Damo

+0

我有一個類似的問題,這解決了它。區別在於,似乎搜索表不會讓我通過「table registerNib:forCellReuseIdentifier」使用自定義單元格,但是您的建議([[NSBundle mainBundle] loadNibNamed ...)會這樣! –

相關問題