web-dev-qa-db-ja.com

UIView内のUITableViewの上の空の空白

ViewControllerビュー内にTableViewを配置しようとしていますが、ナビゲーションバーの下部とテーブルの上部の間に44の高さのギャップを残しています。次に、ギャップ内にUITextFieldを配置して、固定ヘッダーとして機能させたいと思いました。何らかの理由で、TableViewの「プロトタイプセル」の先頭に空の空白があります。そのちょうど空白。ストーリーボードでの表示は次のとおりです。

storyboard

アプリのディスプレイを表示すると、次のようになります。

app1

テーブルをスクロールすると、正しい場所までずっと移動します。

app2

31
Fenda

参加者のViewControllerの「属性インスペクター」(右側のメニュー)を確認してください。オプション 'Extend Edges'を確認し、 'Under Top Bars'のチェックを外してから、tableviewを再配置します。

別の可能な解決策は、オプション 'Adjust Scroll View Insets'のチェックを外すことです。その理由は、viewControllerがエッジを拡張すると、たとえばトップバーの下で、tableViewのscrollViewが自動的にインセットトップを調整するため、tableViewのコンテンツがトップバーの下で正確に開始されるためです。ただし、tableView自体はバーの下から始まるため、これは必要ありません。

ViewControllerに焦点を合わせ、[属性インスペクター]タブに移動しました。

enter image description here

89
oren

これを試してください:

self.tableView.contentInset = UIEdgeInsetsMake(-65, 0, 0, 0)
13

これをViewDidLoadメソッドに追加するだけです

self.automaticallyAdjustsScrollViewInsets = NO;
9
Fadi Abuzant

Extend Edgesのデフォルト設定を変更する必要はありません。

実際の問題は、ストーリーボードの空白のテーブルヘッダービューであるように見えます。ストーリーボードのスクリーンショットで、名前の入力ビューのすぐ下、プロトタイプセルビューのすぐ上に表示されます。消して。

1
Mike Taverne

テーブルビューのスタイルをグループ化からプレーンに変更します

as shown here

0
venkatesh

これに対する解決策を見つけました。私の場合、私はTabBarViewControllerを使用していました。「スクロールビューのインセットを調整」オプションのチェックを外すだけです。問題はなくなります。

https://i.stack.imgur.com/qgQI8.png

0
NitinLandge

私の問題は、tableHeaderViewを新しいUIViewに設定することです。

self.tableHeaderView = UIView(frame: .zero)

この行を削除すると、問題はなくなりました。これを試して:

//self.tableHeaderView = UIView(frame: .zero)
0
AshvinGudaliya

Objective-Cユーザーの場合、これをViewDidLoadメソッドに追加します。

[self.tableView setContentInset:UIEdgeInsetsMake(-20, 0, 0, 0)];
0
Rishabh Munde