Swift 可折叠页眉动画未设置动画

Swift 可折叠页眉动画未设置动画,swift,uitableview,Swift,Uitableview,您好,我已经在我的swift中实现了一个可折叠的标题,标题效果很好,我能够折叠和解压该部分。问题是,当我用新信息重新加载tableView时,标题中的箭头将丢失其动画,并且视图中的箭头在加载时不会旋转。如果你有任何想法,请告诉我 代码: 桌面视图- func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { if let header = tableView.d

您好,我已经在我的swift中实现了一个可折叠的标题,标题效果很好,我能够折叠和解压该部分。问题是,当我用新信息重新加载tableView时,标题中的箭头将丢失其动画,并且视图中的箭头在加载时不会旋转。如果你有任何想法,请告诉我

代码:

桌面视图-

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    if let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: CollapsableHeader.CollapsableTableHeaderIdentifier) as? CollapsableHeader {
        header.setCollapsed(false)
        header.delegate = self

        return header
    }
}
//加载信息后,我会打电话

    self.tableView.reloadData()
折叠割台-

//其他方法

override func prepareForReuse() {
        super.prepareForReuse()
    }


    //Collapsed options
    func setCollapsed(_ collapsed: Bool) {
        //
        // Animate the arrow rotation (see Extensions.swf)
        //
        self.arrow.rotate(collapsed ? 0.0 : .pi / 2)
    }

尝试检查在上创建的示例项目

链接-

按钮处理程序

//Header cell button Action
    @objc func HandleheaderButton(sender: UIButton){

        //check status of button
        if let buttonTitle = sender.title(for: .normal) {
            if buttonTitle == "Show"{
                //if yes
                self.collapaseHandlerArray.append(self.section[sender.tag])
                sender.setTitle("Hide", for: .normal)
            }
            else {
                //if no
                while self.collapaseHandlerArray.contains(self.section[sender.tag]){
                    if let itemToRemoveIndex = self.collapaseHandlerArray.index(of: self.section[sender.tag]) {
                        //remove title of header from array
                        self.collapaseHandlerArray.remove(at: itemToRemoveIndex)
                        sender.setTitle("Show", for: .normal)
                    }
                }
            }
        }
        //reload section
        self.mainTableView.reloadSections(IndexSet(integer: sender.tag), with: .none)
    }

谢谢

标题。设置已折叠(错误)。Wr u r setting true??尝试在@McDonal_11检查简单代码以制作可折叠的表格视图谢谢您的回复,我有一个切换功能,当用户单击标题时会激活。当前,在加载视图和获取信息时会出现问题loaded@iOSGeek谢谢你的回复!我遵循了您的示例,我只缺少了重新加载部分,而没有重新加载整个表。谢谢你,这解决了我的问题!!接受我发布的答案,谢谢,并关闭此帖子“虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。”
//Header cell button Action
    @objc func HandleheaderButton(sender: UIButton){

        //check status of button
        if let buttonTitle = sender.title(for: .normal) {
            if buttonTitle == "Show"{
                //if yes
                self.collapaseHandlerArray.append(self.section[sender.tag])
                sender.setTitle("Hide", for: .normal)
            }
            else {
                //if no
                while self.collapaseHandlerArray.contains(self.section[sender.tag]){
                    if let itemToRemoveIndex = self.collapaseHandlerArray.index(of: self.section[sender.tag]) {
                        //remove title of header from array
                        self.collapaseHandlerArray.remove(at: itemToRemoveIndex)
                        sender.setTitle("Show", for: .normal)
                    }
                }
            }
        }
        //reload section
        self.mainTableView.reloadSections(IndexSet(integer: sender.tag), with: .none)
    }