我正在使用 UISearchDisplayController 进行搜索,如果可能的话,我想向每个单元格添加更多元素。做了一些搜索,但找不到任何信息。唯一的方法是用 tableview 重现它。除了 textlabel.text 之外,我还可以设置任何其他属性吗
提前致谢!
我正在使用 UISearchDisplayController 进行搜索,如果可能的话,我想向每个单元格添加更多元素。做了一些搜索,但找不到任何信息。唯一的方法是用 tableview 重现它。除了 textlabel.text 之外,我还可以设置任何其他属性吗
提前致谢!
您可以完全更改单元格。
以下代码段依赖于 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;
}
很有可能。所有 tableView 数据源方法都使用 tableView 参数调用。如果
if (tableView == searchController.searchResultsTableView)
然后通过添加子视图或自定义属性来更改单元格。在这种情况下,与其他任何方法相同的方法适用于自定义单元格。
是的,您可以设置 cell.imageView 、 cell.accessoryView 、 cell.BackGroundView .. 等。
阅读此UITableViewCell文档以获取更多信息