我试图显示自定义UISearchBar
结果单元格。我创建了一个自定义UITableViewCell
来显示信息,但我想自定义UISearchBar
结果。
我的课程中有这个代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"PodsCell";
LinhaPod *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[LinhaPod alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
if (isSearching && [self.searchResults count])
{
NSString *texto = [self.searchResults objectAtIndex:indexPath.row];
NSArray *arrTexto = [texto componentsSeparatedByString:@"#"];
cell.titulo.text = arrTexto[6];
cell.dataPod.text = [NSString stringWithFormat:@"%@ - %@", arrTexto[1], [arrTexto[3] stringByReplacingOccurrencesOfString:@"." withString:@"'"]];
[cell setAccessoryType: UITableViewCellAccessoryDisclosureIndicator];
}
return cell;
}
此代码无效。我用"cell.textLabel.text = @"test";"
进行了测试并且工作了。
我正在使用搜索栏和搜索显示控制器。
这是我UITableViewCell
答案 0 :(得分:1)
您是否已将UILabels添加到UITableViewCell? LinhaPod.m中的initWithStyle应该如下所示。 (假设您没有为此自定义单元格使用xib文件)
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
_dataPod = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 160, 44)];
[self addSubview:_dataPod];
_titulo = [[UILabel alloc]initWithFrame:CGRectMake(160, 0, 160, 44)];
[self addSubview:_titulo];
}
return self;
}
当然,在你的LinhaPod.h中你也可以
@interface LinhaPod : UITableViewCell
@property(nonatomic) UILabel *titulo;
@property(nonatomic) UILabel *dataPod;
答案 1 :(得分:0)
- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView
{
[tableView registerClass:[MCSelectCategoryTableViewCell_iPhone class] forCellReuseIdentifier:@"selectCategoryCell"];
}
如果你想在searchDisplayController的tableView中使用自定义单元格,你可以通过在searchDisplayController.searchDisplayTableView中注册它来注册storyBoard的任何UITableView子类。