1

我正在使用 UISearchDisplayController 进行搜索,如果可能的话,我想向每个单元格添加更多元素。做了一些搜索,但找不到任何信息。唯一的方法是用 tableview 重现它。除了 textlabel.text 之外,我还可以设置任何其他属性吗

提前致谢!

4

3 回答 3

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;
}
于 2012-05-16T15:05:21.293 回答
3

很有可能。所有 tableView 数据源方法都使用 tableView 参数调用。如果

if (tableView == searchController.searchResultsTableView)

然后通过添加子视图或自定义属性来更改单元格。在这种情况下,与其他任何方法相同的方法适用于自定义单元格。

于 2012-05-16T14:25:28.630 回答
1

是的,您可以设置 cell.imageView 、 cell.accessoryView 、 cell.BackGroundView .. 等。

阅读此UITableViewCell文档以获取更多信息

于 2012-05-16T14:25:13.077 回答