๋ฐ์ํ
- ์คํฌ๋กค ์ UITableView Header๋ฅผ ๊ณ ์ ์ํฌ ์๊ฐ ์๋๋ฐ ํค๋์ ์๋ ๋ฒํผ์ ๋๋ฌ ํค๋์ ๋์ด๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๊ฒฝ์ฐ
- ex) ํค๋ ๋ฒํผ ๋๋ฅด๋ฉด ๊ฒ์ ์์ญ ๋ ธ์ถ
- UITableViewHeaderFooterView ์ ๋์ด ์ ๋ฐ์ดํธ ํ๋ ์ฝ๋ ์์ฑ
func toggleHeight() {
containerView.snp.updateConstraints { make in
make.height.equalTo(searchButton.tag).priority(.high)
}
}
- header ์ง์ ํ๋ Delegate์์ ํค๋์ ๋ฒํผ์ addTarget ํด์ค
- ์ด๋ ์ฐ๊ฒฐํ ํจ์๋ updateHeader
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let cell = tableView.dequeueReusableHeaderFooterView(withIdentifier: "TransactionHeaderView") as? TransactionHeaderView
cell?.searchButton.addTarget(self, action: #selector(updateHeader), for: .touchUpInside)
return cell
}
- target์ผ๋ก ์ง์ ํด ์ค updateHeader ์์ ํค๋๋ฅผ ์ฐพ์ ์ค
@objc func updateHeader() {
let header = tableView.headerView(forSection: 0) as? TransactionHeaderView
}
- ํ ์ด๋ธ ๋ทฐ ์ ๋ฐ์ดํธ์ beginUpdates -> endUpdates ํด์ค
- updateHeader ํจ์์ ์๋ ์ฝ๋ ์ถ๊ฐ
if let header = header {
tableView.beginUpdates()
header.toggleHeight()
tableView.endUpdates()
}
- ํค๋ ๋ทฐ ํด๋์ค์์ ์์ฑํ ๋์ด ์ ๋ฐ์ดํธ ํจ์๋ฅผ ํธ์ถ
>>> ๋ฌธ์ ๊ฐ ์๊ฑฐ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ๋๊ธ๋ก ๊ณต์ ๋ถํ๋๋ ค์!!
728x90
๋ฐ์ํ
๋๊ธ