UITableViewの上部に、コンテンツ領域のサイズに影響を与えない空白スペースを追加する必要があります。コンテンツを下にシフトしたり、空白のセルを追加したりすることは、私がやりたいことではありません。代わりに、オフセットが必要です。
どうやって?
UITableViewの上部に、コンテンツ領域のサイズに影響を与えない空白スペースを追加する必要があります。コンテンツを下にシフトしたり、空白のセルを追加したりすることは、私がやりたいことではありません。代わりに、オフセットが必要です。
どうやって?
回答:
私があなたをフォローしているかどうかはわかりませんが、私は同じ苦境にあると思います。私の場合、画面上部のADBannerViewにスペースを与える必要があるため、追加したviewDidLoadメソッドで実行しました。
[self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)];
必要な値はUIEdgeInsetsMake(top、left、bottom、right)です。
あるいは、Swiftでも同じです。
self.tableView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)
Swift 4.2:
self.tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)
「空の」ヘッダービューをテーブルに追加できます...これにより、テーブルの最初の外観にオフセットが表示されますが、スクロールを開始するとオフセットはなくなります。それがあなたが望むものかどうかはわかりません。
永続的なオフセットが必要で、まだセクションヘッダーを使用していない場合は、セクションヘッダーのカスタムビューを作成することで、上記と同様にオフセットを作成できます。特に、セクションが1つしかない場合は、永続的なオフセットの外観が得られます。 。
どちらかがあなたが探しているものであると思われる場合は、サンプルコードを投稿できます。
の周りに「ビュー」をラップしたいようですUITableView
。あなたが持っている場合はUITableViewController
IBにUITableView
自動的に設定されますview
のUITableViewController
。view
プロパティを通常に変更し、そこUIView
に自分を追加UITableView
してオフセットを指定します。
---編集---私は自分の投稿を読んだだけで、ほとんど意味がないと思いました:)を作成すると、UITableViewController
次のようになります(疑似コードで):
UITableViewController.view = UITableView
これは、実際のテーブルがスペース全体を占めることになり、他のビューを追加することさえできないことを意味します。だからあなたは変更する必要があります
UITableViewController.view = UIView
それにテーブルを追加します UIView
私はこの答えをこれと組み合わせました:https: //stackoverflow.com/a/9450345/1993937
tableViewをコンテンツインセットの上部に表示するために、ビューが最初に表示されたときにtableViewをわずかに下にスクロールしても、上部のスペースが途切れることはありません。(18は私のトップギャップです)
[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)];
[self.tableView setContentOffset:
CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];