60

グループ化されたテーブル ビューは、iOS 6 の下部に追加のパディングがあるようですが (iOS 5 にはありません)、これが正しい/予期される動作であることを示唆するドキュメントが見つかりません。

これは、例のプロジェクトなど、例のプロジェクトにも影響しSimpleTableViewますTableViewSuite。のスタイルを「グループ化」に変更し、SDK を iOS 6 に更新する必要があったと思いますAppDelegateが、プロジェクトには他の変更は加えられていません。

調査の結果10px、ヘッダー ビューとフッター ビュー用に予約されているものと、20px説明できないものがあることが明らかになりました。実際のヘッダー ビューやフッター ビューはありません ( tableHeaderViewand tableFooterViewareであり、eg のnil実装と戻りは何もしません)。もちろん何か見逃しているかもしれませんが、tableView自体に「20」の値が見つかりません。nilviewForFooterInSection

フッターにゼロサイズのビューを追加しても何も起こりませんが、1px正方形のビューを追加すると余分なパディングがなくなります。例えば:

tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0,0,1,1)];

それでも高さを占める1pxので、下のパディングはになりまし11pxたが、これは 20 よりもはるかに目立ちません。そして、sectionFooterHeightを 0 に設定すると1px、下のスペースだけになります。

私の質問は次のとおりです。また、どうすれば完全に削除できますか? これはミッションクリティカルなものではありませんが、非常に奇妙で望ましくなく、文書化されていないと私が知る限りです。

注意してください-アップル開発フォーラムからの過去の質問をコピーしてください。しかし、私はまったく同じ問題を抱えており、それを解決する方法もわかりません。

4

12 に答える 12

88

@frankWhite 'ソリューションはうまく機能しますが、あいまいさを軽減するために 0.1、0.001 などを入力しないようにするためのより良いソリューションがあります。

// Swift version
func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {

    // remove bottom extra 20px space.
    return CGFloat.min
}
// Objective-C version
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {

    // remove bottom extra 20px space.
    return CGFLOAT_MIN;
} 
于 2015-07-16T05:11:53.480 に答える
13
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
   return 0.01;
} 

それは私のための仕事です

于 2015-04-08T15:39:24.140 に答える
0

次のコードは私のために働く

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 0;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return 0;
}
于 2013-01-21T06:13:49.710 に答える
-2

bouncesのプロパティを使用しUIScrollViewます。

[yourTableView setBounces:NO];

これにより、 の上部と下部にある余分なパディングと思われるものが削除されますUITableView。実際には、テーブルビューのスクロールビューを無効にして、コンテンツの端を越えてスクロールするだけです。

于 2013-03-15T03:16:09.400 に答える