ios 在swift 4中点击按钮时重新加载特定部分

2guxujil  于 2023-02-26  发布在  iOS
关注(0)|答案(1)|浏览(150)

我试图在swift 4中的按钮点击时重新加载特定部分。为此,我使用以下代码:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let headerView:CustomCell = tableView.dequeueReusableCell(withIdentifier: "reuseCell") as! CustomCell
        let dict:[String:Any]=array[section]
        let firstKey = Array(dict.keys)[0]
        headerView.categoryLabel.text=firstKey
        headerView.categoryLabel.textColor = UIColor.black
        currentSection=section
        print("value of section and current section here %@%@",section,currentSection)
        let tapRecognizer = UIButton()
        tapRecognizer.frame = CGRect.init(x: 0, y:10, width:self.tableView.frame.size.width, height:50)
        //tapRecognizer.backgroundColor=UIColor.red
        tapRecognizer.tag=section
        tapRecognizer.addTarget(self, action: #selector(tapOnHeaderView(_sender:)), for: .touchUpInside)
        headerView.addSubview(tapRecognizer)
        return headerView;
    }

@objc func tapOnHeaderView(_sender:UIButton){
        print("value of sender tag","\(_sender.tag)")
        onReload = true
        print("value of index vala tag",IndexSet(integer: _sender.tag))
        let sectionToReload = 0
        let indexSet: IndexSet = [sectionToReload]

        self.tableView.reloadSections(indexSet, with: .automatic)
    }

extension ViewController:UITableViewDelegate{
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        if(indexPath.section==0){
            if(!onReload){
                return 0
            }else{
                return 40
            }}
        else{
            if(!onReload){
                return 0
            }else{
                return 40
            }
        }
    }

当我点击任何按钮时,预计只有第0节得到重新加载。但是,事实上,当我点击按钮时,第0节和第1节都得到重新加载。请帮助我解决这个问题。

uubf1zoe

uubf1zoe1#

@objc func tapOnHeaderView(_sender:UIButton){
        print("value of sender tag","\(_sender.tag)")
        onReload = true
        print("value of index vala tag",IndexSet(integer: _sender.tag))
      
        self.tableView.reloadSections([0], with: .automatic)
    }

请用此代码替换,并检查它是否适合您

相关问题