找到数据时表格视图中的自定义标签文本?目标c

Posted

技术标签:

【中文标题】找到数据时表格视图中的自定义标签文本?目标c【英文标题】:Custom Label text in tableview when data found or not? objective c 【发布时间】:2017-10-16 06:40:11 【问题描述】:

我试图找到一个解决方案,但到目前为止还没有运气,我可以在 tableview 中显示一个自定义标签,如果数组中没有数据,则 numberOfSections 将返回零,否则我将返回所需的内容。

现在我在 viewDidLoad 中发送 Json 请求,这样我就可以在表格视图中填充数据。加载视图时,最初我在自定义标签中找不到任何数据,这很好,因为初始数组为空,并且在我发送 JSO 请求时将文本更改为“获取数据请稍候”,但这没有任何效果我经常看到没有找到数据。

你们能告诉我我错过了什么吗?

请不要将numberOfRows 的解决方案发布为1,部分返回为1

提前致谢。

【问题讨论】:

你在填充表格之前检查过数组计数吗?你在主线程上重新加载表吗?有很多事情可以检查和解决,使用断点调试。 你能上传一些代码更清楚吗 Tushar,是的,我已经检查了你上面写的内容,一切都符合预期。 【参考方案1】:

得到Json数组后检查这个条件。

if( [YourJsonArray count]==0)

  [self showalert:@"" msg:@"No data found"];    
 
else

  [self.tbleView reloadData];

报警方法

-(void)showalert:(NSString *)strTitle  msg :(NSString *)message
 
 UIAlertController * alert=[UIAlertController alertControllerWithTitle:strTitle
                                                              message:message
                                                       preferredStyle:UIAlertControllerStyleAlert];

 UIAlertAction* yesButton = [UIAlertAction actionWithTitle:@"Ok "
                                                    style:UIAlertActionStyleDefault
                                                  handler:^(UIAlertAction * action)
                            

                            ];

[alert addAction:yesButton];
[self presentViewController:alert animated:YES completion:nil];


您可以根据您的要求在 tableview 中的 numberofrows 或 Section 中使用 YourJsonArray

【讨论】:

lalit,我不想隐藏标签,我只想在请求发送到“获取数据请稍候”时更改该标签的文本,如果没有找到记录,我想将文本更改为“没有找到数据”。通过您的解决方案,我正在隐藏和取消隐藏不需要的标签。【参考方案2】:

以下代码供您参考。

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 

    NSInteger numOfSections = 0;
    if ([searchArray count] )
    
        self.tableView = UITableViewCellSeparatorStyleSingleLine;
        numOfSections                = 1;
        self.tableView.backgroundView = nil;
    
    else

    if ([results count])
    
        self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        numOfSections = 1;
        self.tableView.backgroundView = nil;
    
    else
    
        self.noDataLabel.text             = @"No Data Available";
        self.noDataLabel.textColor        = [UIColor blackColor];
        self.noDataLabel.textAlignment    = NSTextAlignmentCenter;
        self.tableView.backgroundView = self.noDataLabel;
        self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    
    
    return numOfSections;


-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

    NSUInteger rows =0;
    if(self.searchBar.text.length > 0)
        rows = [searchArray count];
        return rows;
    
    else

     rows = results.count;

    
    DLog(@"%ld",rows);
    return rows;


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    TableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"TableViewCell"];

    if((self.searchBar.text.length > 0))

        sObject * searchObj = [searchArray objectAtIndex:indexPath.section] ;
        [cell setData:searchObj];
    
    else if([results count] == 0)
        return cell;
    
    else 

    sObject * ordObj = [results objectAtIndex:indexPath.row];

    [cell setData:ordObj];
    
    return cell;

我在发送Json 请求之前添加以下行

self.noDataLabel.text = @".. Fetching Data Please Wait ..";

【讨论】:

以上是关于找到数据时表格视图中的自定义标签文本?目标c的主要内容,如果未能解决你的问题,请参考以下文章

故事板中的自定义表格视图单元格布局似乎无效

如何从表格视图的自定义单元格内的 TextField 获取值(标签)以发布到 te URL

自定义表格视图单元格中的可编辑文本字段

在 didselect 行中我的第一行返回标签文本而不是我的自定义标签文本

如何在目标c中创建带有标签和文本字段的自定义单元格

无法查看 UITableViewCell 中的自定义标签