找到数据时表格视图中的自定义标签文本?目标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