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つしかない場合は、セクションヘッダーのカスタムビューを作成することで、上記と同様にオフセットを作成できます。これにより、パーマネントオフセットの外観が得られます。 。
それらのいずれかがあなたが探しているものであると思われる場合は、サンプルコードを投稿できます。
私はジグザットの答えと以下を組み合わせました:
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 320, 1) animated:NO];
に
- (void)viewDidLoad
したがって、最初のセルは最上部にありません。
ラップしたい音UITableView
の周りの「ビュー」。 IBにUITableViewController
がある場合、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];