我設置爲UITableView
的部分頭,一切完美的作品:怎樣的tableView:viewForHeaderInSection:工作完全以及如何定製這個視圖動態
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
let headerView = MyCustomHeaderView()
headerView.backgroundColor = UIColor.blueColor()
return headerView
}
每節的標題是藍色的,正如我預期的那樣。現在
,我想改變這種顏色,當我UITableView
被滾動,所以我在一個UITableView
擴展實現此方法:
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
被調用,但背景顏色標題不會更改。
所以我的問題是:
是
UIView
由tableView:viewForHeaderInSection:
一樣在標題中顯示的實際UIView
返回的實例?它是一個副本嗎?還有別的嗎?我該如何動態改變這個標題視圖?我是否需要撥打
reloadData
才能更改標題的背景顏色?這將是對資源的浪費..
你可以得到的在表'tableView.headerViewForSection(X)' – dan
我試着以及看法,但我得到了相同的結果 – Randy