私の問題は、グループ化されたUITableView
のiOS 7では、テーブルの上部と最初のセルにギャップがあることです。
奇妙なのは、最初にコンテンツを読み込むと、最初の画像のようにテーブルが正常に表示されますが、下にスクロールすると、2番目のように上部と最初のセルの間にスペースが表示されることです:
スタイルプレーンでは、この動作は出ませんでしたが、残念ながらグループ化されたテーブルビューを使用する必要があります。
についてのアイデアは?
これをViewDidLoad
メソッドに追加するだけです
self.automaticallyAdjustsScrollViewInsets = NO;
答えは私と私のチームにとって非常に面白く、そして魅力のように働いた
理由:
これは、ビュー階層の最初のビューでのみ発生します。この最初のビューがUITableViewの場合。したがって、他のすべての類似したUITableViewには、最初のセクションを除き、この迷惑なセクションはありません。 UITableViewをビュー階層の最初の場所から移動してみましたが、すべてが期待どおりに機能していました。
それは私の同様の問題を解決します:
if ([[UIDevice currentDevice].systemVersion floatValue] >= 7){
tableView.contentInset = UIEdgeInsetsMake(-20, 0, 0, 0);
}
Storyboardでxibまたはコントローラーを選択して、View Controllerの属性インスペクターに移動します。 レイアウトの調整のスクロールビューインセットの調整のチェックを外します。問題を解決します
グループ化されたスタイルと1グループのみのUITableViewを使用している場合は、代わりにプレーンスタイルを使用して問題を解決します。
UITableViewController *tableViewController;
tableViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
グループ化されたタイプtableView
におけるこの問題の最も簡単な解決策は次のとおりです。
tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 0.01f)];
みんな!同じ問題がありました。 TableViewは、ナビゲーションバーと最初のセルの間に空きスペースがあります。このコードは私を救った:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0) {
return 10;
}
else return 2;
}
UITableView自体の上、およびセルの間にもスペースがありました。上記の2つの異なる回答で解決策を見つけました。両方の解決策を見逃さないように、もう一度投稿してください。
これにより、上からスペースが削除されました。
self.automaticallyAdjustsScrollViewInsets = NO;
これにより、セルの下のスペースが削除されました。UITableViewの「Style」属性を「Plain」に設定します
私はXcode 7.3.1
、iOS9
、およびSwift 2
。私のために働いたものを共有したいと思います:
これをViewDidLoad
メソッドに追加するだけです
self.automaticallyAdjustsScrollViewInsets = false;
同様の問題があり、AdjustsScrollViewInsetsを自動的にNOに設定することもありました。これは私のために解決しました:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
{
return CGFLOAT_MIN;
}
これはかなり前に回答されたことがわかりますが、同様の状況に陥った他の人のために、私が最終的に働いたものを共有します:
Xibを使用している場合は、最上位のビューを選択し、属性インスペクターのシミュレートされたメトリックス領域で「ステータスバー」を「なし」に設定します。間隔の問題を修正しました。
私にとってこれはうまくいきませんでした
self.automaticallyAdjustsScrollViewInsets = NO;
これにより、テーブルビューがNavigationBarの下にのみ配置されました。
私のために働いたのは、ストーリーボードに行き、tableViewのサイズを変更することでした。私のtableViewには、ステータスバーを許可するために上部に20pxのギャップがあったようです。私はそれをスケーリングし、すべてが完全に整列しました。
IOS 7以降では、グループヘッダーといくつかのスペースが自動的に取得されます。アプリを設定アプリと比較すると、表示されます。ヘッダーの高さをできるだけ小さく設定するようUITableViewに指示することで、この問題を回避できます。 最初のグループヘッダーを非表示にする方法 を参照してください。
非常に奇妙な状況で、テーブルビューの1つの上部にこの余分なスペースが表示されていました。
ナビゲーションスタックの最初のコントローラーのルートビューとしてUIScrollView
を追加した後、次のコントローラーをShow Detail
セグエとして提示した場合、次のコントローラーにはテーブルビューの上にスペースがあります。
私にとっての解決策は、セグエをPresent Modally
に変更することで、すべてが正常に戻りました。
セグエの変更の最も奇妙な部分は、beforeルートビューをUIScrollView
に追加し、Show Detail
セグエが次のコントローラをモーダルモードで表示することでした。それでもafterルートUIScrollView
を追加し、Show Detail
セグエは次のコントローラーでpushingでした(これは私が望んでいたものではありませんでした)。