176

UITableView現在、View Controller の上部ではなく、別の場所に配置しようとしています。これにより、ナビゲーションバーを考慮して上部にヘッダーを追加しようとしていますが、コントローラーの上部にないため、これは必要ありません。

セルを配置したい場所の左上隅を配置すると、UITableViewそこにセルが配置されません。

ここで、セルが正しい場所にあるようにテーブル ビューを上に移動すると、別の問題が発生します。スクロールすると、セルが上に移動する可能性があります (これは、ナビゲーション コントローラーの上に指を置いた場合です)。

私が手放すと、そうです-セルは検索バーのすぐ下に移動しますが、これは明らかに、それらを上に移動する方法に問題があります.

どうすればこれを行うことができますか?もっと簡単な方法はありますか?

4

32 に答える 32

9

上記のどれも私を助けませんでした。しかし、これを行うと役に立ちました

self.tableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0)

代わりに-64、ナビゲーション バーの高さに応じて他の数値を入力できます。

于 2016-10-16T12:38:11.943 に答える
5

あらかじめ追加されている場合がありますUIRefreshControl。次のようなコードでこの問題があります。

self.refreshControl = [[UIRefreshControl alloc] init];{
    [self.refreshControl setAttributedTitle:[[NSAttributedString alloc]
                                             initWithString:@"Your string"]];
    [self.refreshControl addTarget:self
                            action:@selector(updateScreen)
                  forControlEvents:UIControlEventValueChanged];

}

ご覧のとおり、self.refreshController直後に設定しましたinit

ただし、refreshControlセットアップ後に設定すると、トップスペースは邪魔になりません。

UIRefreshControl *refreshControl  = [[UIRefreshControl alloc] init];{
    [self.refreshControl setAttributedTitle:[[NSAttributedString alloc]
                                             initWithString:@"Your String"]];
    [self.refreshControl addTarget:self
                            action:@selector(updateScreen)
                  forControlEvents:UIControlEventValueChanged];
    self.refreshControl = refreshControl;
}
于 2014-04-27T16:27:48.390 に答える
3

確かなことは言えませんが、プロトタイプ セルの開始位置と UITableView の上部の間に余分な UIView がスタックしているようです。追加したテキスト/行を削除すると、私の画像はあなたの画像とまったく同じに見えます.

ここに画像の説明を入力

于 2013-09-20T04:15:01.960 に答える
3

上部の余分なスペースの原因はまだわかりませんが、スペースのある UITableView を削除して新しいものに置き換えると、スペースがなくなることがわかりました。

うっかり UIView をそこにドラッグしてしまったのでしょうが、選択できなかったので削除できませんでした。

于 2013-09-21T14:11:50.030 に答える
0

私の場合、私は ContainerViewController を使用し、その中に UITableViewController を入れていました。ContainerViewController を削除した後。問題は解決します。

于 2016-07-29T05:52:48.997 に答える
0

Xcode 8 のバグ…</p>

Storyboard UITableView スタイルが Plain に設定されている場合は、まずこれを試してください。

テーブルのスタイルを Grouped に設定してから、Plain に戻します。これにより、アプリの UITableView の先頭にあるスペースが削除されました。

于 2016-11-07T15:32:54.537 に答える
0

テーブルの上下にUIViewを挿入(ドラッグ&ドロップ)できます。それらのプロパティを透明に設定し、高さを 1 ピクセルに設定します。これは、セルの前にある余分なパディングを削除するためです。

于 2014-05-22T11:32:56.993 に答える
0

私の場合、コンテナ ビューを使用していました。(メイン ビュー --> コンテナ ビュー --> UITableView)

上部の余分なスペースは、デバイスの通知バー (時刻が表示される場所、バッテリー) のスペースのようなものだと思います。私は本当にそうです、それは仮定ではありません。

私がしたことは、UIビルダーからのものでした:

  • Table View Controllerを選択して完了
  • 属性インスペクタを開く
  • -> View Controller -> Layout -> "Select Wants Full Screen" に移動します。
于 2013-11-22T20:13:18.237 に答える
0

これに対する解決策を見つけました。

tableview を選択し、Editor -> Arrange -> Send to Front をクリックするだけです。

それは私にとってはうまくいきました。

于 2015-05-14T19:24:22.387 に答える
0

このコードを、テーブルが作成される viewDidLoad または viewDidAppear に使用できます。

// Remove blank space on header of table view
 videoListUITableView.contentInset = UIEdgeInsetsZero;

// The iOS device = iPhone or iPod Touch
CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;

// Set the height of the table on the basis of number of rows
videoListUITableView.frame = CGRectMake(videoListUITableView.frame.origin.x, videoListUITableView.frame.origin.y, videoListUITableView.frame.size.width, iOSDeviceScreenSize.height-100);



// Hide those cell which doesn't contain any kind of data
self.videoListUITableView.tableFooterView = [[UIView alloc] init];
于 2013-11-25T12:31:29.793 に答える