2016-12-12 5 views
0

cellForRowAtIndexPathの行数に応じてUITableViewのサイズを変更しています。そのため、UITableViewの次の部分は表示されず、表示されていないUITableView、cellForRowAtIndexPath:は決して呼び出されません。Objective-cのcellForRowAtIndexPathの行数に応じてUITableViewのフレームを変更します

しかし、私は行の数に応じてTableViewフレームを管理する必要があります、私はこれを実装する方法をお勧めします。 ありがとう

+0

あなたはあなたが望む通りにテーブルビューにレコードを読み込むためにページ設定を使うことができます –

+0

しかし、私はtableviewcellをスクロールしたくないので、私はフレーム数をセルごとに変更する必要があります。 – Arsad

+0

UITableViewの上でスクロールビューを使用して、スクロールして全体のテーブルビューを表示しましたか? – CodeChanger

答えて

1

あなたUITableViewへのautoLayout

を使用している場合>= 0大手、末尾、上部と下部の制約を追加また、750の優先順位で固定し、高さ制約を追加ためIBOutletを作成します。この高さの制約はUIViewControllerです。今度は身長を使って身長を計算できます。これにより、UITableViewは画面全体の高さを超えるとスクロール可能になります。

//dataArray = array of your data source 
tableViewHeightConstraint.constant = dataArray.count * rowHeight; 

今、この高さの制約は、すぐにあなたが行を削除する機能を追加しているので、もしUITableViewがスクロール可能になると解除されます、あなたはすぐに行数をUITableViewへの新しい高さ制約を作成する必要がありますofは画面境界全体を占めず、新しい高さ制約を適切に更新しません。

+0

ありがとうリーク、それは働いた。 – Arsad

0

UITableViewのコンテンツサイズプロパティを使用することができます。

[tableView reloadData]; // you need to reload data first before set frame 
tableView.frame =CGRectMake(tableView.frame.origin.x,tableView.frame.origin.x, tableView.frame.size.width, tableView.contentSize.height); 
関連する問題