UITableView
の2つのセクション間のスペースを削減する必要があります。私はこれを見ました question しかし、ソリューションはフッターとヘッダーのスペースを結合するため、カスタムヘッダービューを許可しません。
これはUITableView
の写真です。黒い色はUITableView
背景色です。
この関数をオーバーライドしようとしましたか:
override func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.00001
}
フッタービューの高さをストーリーボードまたはXIBで最小値に調整することで、これを解決できると思います。
フッターの高さのコードで何を書いたかわかりません。私が間違っていたらごめんなさい。
ITableViewでフッタービューを非表示 の重複の可能性
Swift 3の場合
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return CGFloat.leastNormalMagnitude
}
Icaroが投稿した回答 に加えて、下の空のスペースを削除するセクションのnil
を返すtableView:viewForFooterInSection:
メソッドも実装する必要があることを追加したいと思います。次になります:
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 0.001f;
}
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
return nil;
}
ヘッダーとセルテキストの間のスペースを定義するには、メソッドheightForHeaderInSectionを使用する必要があります。たとえば、異なるセクションに応じて変更することもできます。一部のセクションではより多くの距離を表示する必要があり、一部のセクションではギャップを表示したくない場合があります。そのような場合、0.000001fのCGFLOAT_MINを使用できます。例を挙げて、ヘッダーの高さの異なるセクションを使用する方法
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0 || section == 2)
{
return 55.0;
}
else
{
return CGFLOAT_MIN;
}
}
それがあなたを助けることを願っています。
Swift 4+の場合、これら2つのメソッドをオーバーライドする必要があります
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return CGFloat.leastNormalMagnitude
}
override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
これも役立ちます:
override func viewDidLoad() {
super.viewDidLoad()
tableView.sectionHeaderHeight = UITableViewAutomaticDimension
}
TableViewデリゲートメソッドは、フロート値が0.0fの場合には効果がありません。それより大きい値を指定してみてください。
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 0.00001f;
}
- (UIView*)tableView:(UITableView*)tableView
viewForFooterInSection:(NSInteger)section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
デリゲートheightForHeaderInSection
&heightForFooterInSection
を実装することで実行できます。
SectionHeaderまたはSectionFooterの高さが0であっても、戻り値は0であってはなりません。非常に小さな値が必要です。CGFLOAT_MIN
を試してください。
私の例:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == [self.dataArray indexOfObject:self.bannerList]) {
return 46;
}
return CGFLOAT_MIN;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return CGFLOAT_MIN;
}