1

我有一个 UITableView 来显示搜索结果。用户通过滚动到末尾来加载更多结果。当服务器没有更多结果时,我想在表格视图的末尾显示一个文本,上面写着“没有更多的搜索结果”。我尝试了以下代码,但它不起作用。任何关于正在发生的事情的建议将不胜感激。

UILabel *endLabel = [[UILabel alloc] init];
endLabel.text = @"No more results to display";
[endLabel sizeToFit];
self.tableView.tableFooterView = endLabel;
[self.tableView reloadData];
4

3 回答 3

1

以下代码可以帮助您解决问题。

您可以将此代码写入您的 viewDidLoad。

UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 100)];
        [footer addSubview:yourlabel];
        [footer bringSubviewToFront:yourlabel];
        yourlabel.text =  @"whatever you want to write";
        yourlabel.frame = CGRectMake(self.view.frame.size.width/2 - yourlabel.frame.size.width/2 , 30, yourlabel.frame.size.width, yourlabel.frame.size.height);
        tbl_view.tableFooterView = footer;

但是,您需要增加表格页脚视图的大小。

于 2016-08-23T05:31:54.917 回答
0

I. 在 vi​​ewController 的 xib 中创建一个单独的视图。通过单独的视图,我的意思是不要将 viewController 视图中的视图作为子视图拖动,而只需将其拖动到 Interface Builder 中的空白处。

二、现在设计视图,即在其中放置一个标签,表示不再有数据。

三、现在在您的 viewController 中创建该视图的出口。

@property(nonatomic, strong) IBOutlet UIView * tableFooterView;  

四。当没有更多数据时,只需写入

self.tableView.tableFooterView = self.tableFooterView;  

五、设置页脚的宽度和高度viewDidLoad

self.tableFooterView.frame = CGRectMake(0, 0, self.tableView.bounds.size.width, 40);

六、当你确实有数据并且不想显示没有更多数据的东西时

self.tableView.tableFooterView = nil;
于 2016-09-02T13:07:14.013 回答
-1
//custom header for footer
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
     UILabel *endLabel = [[UILabel alloc] init];
     endLabel.text = @"No more results to display";
    UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 50, self.tblView.frame.size.width, 40)];
    [footerView addSubview:endLabel];
    return footerView;
    }


//Method To Get Height For Header and Footer

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
     return 40.0;// your view height
}
于 2016-08-23T04:52:01.477 回答