2016-08-23 12 views
1

検索結果を表示するためのUITableViewがあります。ユーザーは最後までスクロールして、さらに多くの結果をロードします。サーバーに結果がなくなると、テーブルビューの最後に「検索結果はもう表示されません」というテキストが表示されます。私は次のコードを試しましたが、うまくいきません。何が起こっているのかについてのご意見は大いに感謝されます。UItableviewの最後にカスタムテキストのフッタービューを表示する方法

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

あなたがテーブルフッターを追加するために、テーブルを再ロードする必要はありません。ラベルが正しく設定されていることを確認してください。フレームを確認します。ラベルの色とフォントを設定してみてください。 – rmaddy

+0

@MichaelFourreこれはtableViewではなく、すべてのセクションのフッターです。 –

+0

@MichaelFourre OPに複数のセクションがある場合は、複数のフッターが表示され、そのOPは必要ありません。 –

答えて

-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 
} 
+1

このコードを試してみるとエラーになります。あなたは 'headerView.contentView'を持っているところで' footerView.contentView'を意味しましたか? –

+0

セクションフッタを使用する必要はありません。 OPは表の最後に1つのフッターしか必要としません。 – rmaddy

+0

そして 'footerView'は' contentView'を持っていません。そしてなぜ 'footerView'が' 0、50'の起点で作られたのですか? – rmaddy

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; 

ただし、表のフッタービューのサイズを大きくする必要があります。

0

I. viewControllerのxibに別のビューを作成します。別のビューでは、viewControllerのビューをサブビューとしてドラッグするのではなく、Interface Builderの空白にドラッグするだけです。

II。今度はビューをデザインします。つまり、それ以上ラベルが付いていないラベルを貼り付けます。

III。今あなたのviewControllerでそのビューのアウトレットを作成します。

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

IV。それ以上のデータが存在しない場合だけviewDidLoad

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

VIにフッタの幅&高さを設定

self.tableView.tableFooterView = self.tableFooterView; 

V.を書きます。あなたはデータを持っているし、これ以上のデータのものを表示したくないときそして

self.tableView.tableFooterView = nil; 
関連する問題