나는 UITableView
의 섹션에 대한 헤더를 설정하고 있습니다를 정의하고 모든 것을 완벽하게 작동하는 방법 :어떻게있는 tableView : viewForHeaderInSection : 작동 정확히이 뷰 동적으로
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
let headerView = MyCustomHeaderView()
headerView.backgroundColor = UIColor.blueColor()
return headerView
}
모든 섹션의 헤더는 파란색, 내가 기대하는대로. 나는이 메서드를 호출 할 때
extension UITableView
{
func setHeadersColor(color: UIColor)
{
guard let delegate = self.delegate
else {return}
guard delegate.respondsToSelector(#selector(UITableViewDelegate.tableView(_:viewForHeaderInSection:)))
else {return}
for i in 0...self.numberOfSections
{
if let header = delegate.tableView!(self, viewForHeaderInSection: i) as? MyCustomHeaderView
{
header.backgroundColor = color
}
}
}
}
이 header.backgroundColor = color
가 호출되는하지만 배경 색상 :
지금, 나는 내 UITableView
그래서 스크롤되어 나는 UITableView
확장에서이 방법을 구현이 색상을 변경하려면 헤더가 변경되지 않습니다.
그래서 제 질문은 다음과 같습니다
이
tableView:viewForHeaderInSection:
헤더에 표시되는 실제UIView
같은 의해 반환UIView
의 인스턴스입니다? 사본입니까? 다른 것입니까?이 헤더보기를 어떻게 동적으로 변경할 수 있습니까? 내 머리글의 배경색을 바꾸기 위해서
reloadData
으로 전화해야합니까? 즉 자원의 낭비가 될 것이다 .. 나는 당신의 문제는 그렇게보기는 지속적으로 여기let headerView = MyCustomHeaderView()
만들어보기로 다시 사용하지 관련된 파란색 배경으로 항상 반환하고 있다고 생각
당신 (x)는' – dan
는 나뿐만 아니라 시도 tableView.headerViewForSection'와 테이블에의보기를 얻을 수 있습니다,하지만 난 같은 결과를 얻었다 – Randy