分组单元格显示在我的普通 tableView 中,我不知道为什么

发布于 2024-11-29 10:48:31 字数 1625 浏览 3 评论 0原文

所以我不知道这是怎么发生的,也不知道如何修复它,但我遇到了 UISearchDisplayController 的 plain tableView 显示带有分组单元格的搜索结果的问题。

我有一个带有几个名称的 dataSource 数组,一个 tableData 数组,它遍历 dataSource 数组并添加适合 searchText 的任何条目,然后根据它是哪个 tableView,我使用适当的 dataSource 重新加载 tableView...

任何人都有想法?

代码:

- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
     int count = 0;

     if(aTableView == self.tableView){
        count = [userTableData count]==0?1:[userTableData count];
     }else{
            count = [tableData count];
     }
     return count;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return @"Users"; 
}

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

static NSString *CellIdentifier = @"CellIdentifier";

// Dequeue or create a cell of the appropriate type.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.accessoryType = UITableViewCellAccessoryNone;
}

if(tView == self.tableView){
    if([userTableData count] == 0){
        cell.textLabel.text = @"Please select a user";
    }else{
        cell.textLabel.text = [userTableData objectAtIndex:indexPath.row];
    }
}else{
    cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
}

return cell;

   }

然后当输入搜索时,匹配的字符串被添加到 tableData 数组中

So I don't know how this is happening, or how to fix it, but I am having an issue of my UISearchDisplayController's plain tableView displaying search results with a grouped cell.

I have a dataSource array with a few names, a tableData array that iterates through the dataSource array and adds any entries that fit the searchText, and then depending on which tableView it is, I reload the tableView with the appropriate dataSource...

Ideas anyone?

Code:

- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
     int count = 0;

     if(aTableView == self.tableView){
        count = [userTableData count]==0?1:[userTableData count];
     }else{
            count = [tableData count];
     }
     return count;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return @"Users"; 
}

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

static NSString *CellIdentifier = @"CellIdentifier";

// Dequeue or create a cell of the appropriate type.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.accessoryType = UITableViewCellAccessoryNone;
}

if(tView == self.tableView){
    if([userTableData count] == 0){
        cell.textLabel.text = @"Please select a user";
    }else{
        cell.textLabel.text = [userTableData objectAtIndex:indexPath.row];
    }
}else{
    cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
}

return cell;

   }

And then as the search is entered, matching strings are added to the tableData array

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浪推晚风 2024-12-06 10:48:31

为 UITableView 分配标签并在搜索时隐藏分组的 tableView

assign tags to the UITableView and hide the grouuped tableView while searching

雄赳赳气昂昂 2024-12-06 10:48:31

在关于 searchResultsTableView 属性的 UISearchDisplayController 文档中,它说

讨论:
如果表视图尚不存在,此方法将创建一个新的表视图。

因此,您可以尝试在设置 UISDC 时创建自己的 UITableView,并明确使其变得简单:

UITableView *searchTableView = [[UITableView alloc] initWithFrame:CGRectZero 
    style:UITableViewStylePlain];
searchDisplayController.searchResultsTableView = searchTableView;

In the documentation for UISearchDisplayController about the searchResultsTableView property, it says

Discussion:
This method creates a new table view if one does not already exist.

So what you could try is create your own UITableViewwhen you set up the UISDC, explicitly making it plain:

UITableView *searchTableView = [[UITableView alloc] initWithFrame:CGRectZero 
    style:UITableViewStylePlain];
searchDisplayController.searchResultsTableView = searchTableView;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文