테이블 뷰에 바닥 글을 추가하는 가장 깨끗하고 쉬운 방법은 무엇인지 알고 싶습니다.
이제 하드 코딩을합니다.
func tableView(_ tableView: UITableView,
viewForFooterInSection section: Int) -> UIView? {
if viewModel.shouldShowPremiumBanner {
let footerView: LibraryFooterView = tableView.dequeueReusableHeaderFooter()
footerView.viewModel = LibraryFooterViewModel(navigator: Locator.navigator,
localStorage: Locator.localStorage)
self.tableView.tableFooterView = footerView
return footerView
}
return nil
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
if viewModel.shouldShowPremiumBanner {
return estimatedSectionFooterHeight
}
return .leastNormalMagnitude
}
섹션이 아닌 tableview에 이것을 추가하고 싶습니다.
당신은 이미 설정하여하고 있습니다 self.tableView.tableFooterView = footerView
문서에 따라
이 속성을 사용하여 전체 테이블에 대한 바닥 글보기를 지정합니다. 바닥 글보기는 테이블보기의 스크롤 콘텐츠에 표시되는 마지막 항목이며 개별 섹션에 추가하는 바닥 글보기와는 별개입니다. 이 속성의 기본값은 nil입니다.
링크 : https://developer.apple.com/documentation/uikit/uitableview/1614976-tablefooterview
따라서 viewForFooterInSection
코드 를 제거 하고 viewDidLoad
viewController를 간단히 설정하십시오.
override func viewDidLoad() {
super.viewDidLoad()
let footerView: LibraryFooterView = tableView.dequeueReusableHeaderFooter()
footerView.viewModel = LibraryFooterViewModel(navigator: Locator.navigator,
localStorage: Locator.localStorage)
self.tableView.tableFooterView = footerView
}
써서 self.tableView.tableFooterView = footerView
으로 viewForFooterInSection
하면 단순히 동일한 변수 agin를 리셋하고 다시 실제 시각적 변화하고 단순히 거듭 뷰와 뷰 모델을 작성하여 CPU 사이클을 낭비하고있다. 한 번만 설정 viewDidLoad
하거나 귀하의 경우에 의미가있는 곳에 설정 하고 그대로 두십시오.
도움이되기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다