• Jan
  • Feb
  • Mar
  • Apr
  • May
  • Jun
  • Jul
  • Aug
  • Sep
  • Oct
  • Nov
  • Dec
  • Sun
  • Mon
  • Tue
  • Wed
  • Thu
  • Fri
  • Sat
  • 27
  • 28
  • 29
  • 30
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

UITableView Custom Section Header

스토리보드 내 설정

image

스토리 보드 설정 - Grouped
이렇게 해야 header가 section 중간에서도 sticky하지 않는다,,
설명을 못하겠네
section header가 스크롤했을때 위에서 floating되지 않고 같이 스크롤되어 올라간다! !

section 높이 지정

그리고 아래와 같은 함수를 구현해줘야 한다.

func tableView(_ tableView: UITableView,
                   heightForHeaderInSection section: Int) -> CGFloat {
    return CGFloat(70.0)
}

10년도 더 된 버그인데,,
요 함수를 구현해주지 않으면 첫번째 헤더(index 0인거)가 안 나오는 버그가 있다고 한다.

section 하단 여백 삭제

image

저기 하얀색만큼 여백(footer)이 생기는데, 고걸 지워주는 법

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 0 
}

0으로 주면 지워질 줄 알았는데 아니였다.

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return CGFloat.leastNormalMagnitude
}

CGFloat의 min값으로 줘야 사라진다.

section header 뷰

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
	let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 18))
	let label = UILabel(frame: CGRect(x: 10, y: 5, width: tableView.frame.size.width, height: 18))
	label.font = UIFont.systemFont(ofSize: 14)
	label.text = "\(section)" 
	view.addSubview(label)
	view.backgroundColor = UIColor.gray 
	return view
}

이런 식으로 뷰 짜주면 됨,, 난 걍 대충 숫자만 써놨다