如何在UItableview的末尾显示带有自定义文本的页脚视图

时间:2016-08-23 04:17:11

标签: ios objective-c uitableview cocoa-touch tablefooterview

我有一个UITableView来显示搜索结果。用户通过滚动到最后加载更多结果。当服务器没有更多结果时,我想在tableview的末尾显示一个文本,其中显示"没有更多搜索结果"。我尝试了下面的代码,但它无法正常工作。任何有关正在发生的事情的建议将不胜感激。

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

3 个答案:

答案 0 :(得分: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;

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

答案 1 :(得分:0)

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

II。现在设计一个视图,即在其中放置一个不再显示数据的标签。

III。现在在viewController中创建该视图的出口。

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

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

self.tableView.tableFooterView = self.tableFooterView;  

诉设置宽度和宽度viewDidLoad

中页脚的高度
self.tableFooterView.frame = CGRectMake(0, 0, self.tableView.bounds.size.width, 40);

VI。当你有数据并且不想再显示数据时

self.tableView.tableFooterView = nil;

答案 2 :(得分:-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
}