UITableView Section header없애기

Duna·2021년 7월 22일
0
post-thumbnail

Section 사이 높이가 맘에 들지 않네요

이미지에 있는 TableView는 Inset Grouped TableView입니다.
header 높이가 맘에 들지 않아서, 현재 있는 header를 완전히 없애기로 했습니다.

extension InfomationVC: UITableViewDelegate {
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let headerView = UIView()
        headerView.backgroundColor = UIColor.clear
        return headerView
    }
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 0
    }
}

header를 생성해주고 높이를 0으로 해줬어요.

하지만, 결과는 처참했습니다. 바뀐 게 하나도 없어요.

여러 시행착오 끝에 header height를 1로 바꿔줬습니다.

extension InfomationVC: UITableViewDelegate {
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let headerView = UIView()
        headerView.backgroundColor = UIColor.clear
        return headerView
    }
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 1
    }
}

이렇게 해주자.

원하던 바다!!

결과는 원하던대로 나오긴 했는데 이유는 모르겠어요.

높이를 0.5, 0.1로 했을때도 원하는대로 나오는데, 0으로 하는 순간 헤더 높이가 전처럼 이상해집니다.

++ footer도 동일하더라구요..
제대로 된 이유를 아시는 분은 꼭 알려주세요...🥲

profile
더 멋진 iOS 개발자를 향해

2개의 댓글

comment-user-thumbnail
2022년 2월 15일

tableView의 특성상 0이면 기본값으로 인식한다고 하네요~
충분히 작은 값으로 설정해야 원하는 header의 높이가 없는 것으로 나온다고 해요

답글 달기
comment-user-thumbnail
2022년 4월 26일

0대신 CGFloat.leastNormalMagnitude 를 리턴하세요.

답글 달기