UITableView Section Header子视图在我滚动之前不会调整大小

时间:2018-06-05 19:26:27

标签: ios swift uitableview

我使用以下命令向UITableView部分标题添加自定义视图:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    if section == WalletSectionType.content.rawValue,
        let walletHeader = tableView.dequeueReusableHeaderFooterView(withIdentifier: self.walletHeaderId) as? WalletHeaderView{
        self.walletHeaderView?.rewardsCard.delegate = self
        self.walletHeaderView?.walletNavigationView.delegate = self

        self.walletHeaderView?.autoresizingMask = .flexibleHeight
        return self.walletHeaderView
    }
}

当我更改节标题高度时,它只调整节标题的大小,但不会调整我添加到标题中的自定义视图。如果我滚动tableView,它只能正确调整大小。

我如何触发节标题高度更改:

    self.tableView?.beginUpdates()
    self.tableView?.endUpdates()

触发委托方法

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    var headerHeight :CGFloat = 0.0
    switch section {
    case 1:
        if(self.isRewardsOpen){
            headerHeight = 300
        } else {
            headerHeight = 100
        }
    default:
        break
    }
    return headerHeight
}

我尝试在layoutIfNeededtableView上调用walletHeader,但它没有做任何事情。

修改 我找到的唯一解决方案是再次打电话:

UIView.performWithoutAnimation {
    tableView.beginUpdates()
    tableView.endUpdates()
}

无论如何,我可以在不再召唤这个的情况下做到这一点吗?

0 个答案:

没有答案