在IOS中的uitableview中显示和隐藏uitableview单元格

在IOS中的uitableview中显示和隐藏uitableview单元格,ios,iphone,swift,uitableview,Ios,Iphone,Swift,Uitableview,点击下面的视图后,图像中突出显示的区域将隐藏/显示(使用标签附加卡),iOS中是否有库可以这样做?如果没有,怎么办 我猜您想要展开和折叠tableview单元格。不过abouv库也不错。但是,如果您想学习如何在没有任何库的情况下实现这一点,并且关于tableview有很多东西,您将来可能会有所帮助。 演示和链接一步一步地做 另外,您可以从这里直接下载演示。您还可以在我给您的第一个url上找到下载链接。您可以创建自定义视图,并将其用作tableView的footerview。向其添加点击识别器(或

点击下面的视图后,图像中突出显示的区域将隐藏/显示(使用标签附加卡),iOS中是否有库可以这样做?如果没有,怎么办


我猜您想要展开和折叠tableview单元格。不过abouv库也不错。但是,如果您想学习如何在没有任何库的情况下实现这一点,并且关于tableview有很多东西,您将来可能会有所帮助。 演示和链接一步一步地做


另外,您可以从这里直接下载演示。您还可以在我给您的第一个url上找到下载链接。

您可以创建自定义视图,并将其用作tableView的footerview。向其添加点击识别器(或者您可以添加按钮),以便用户点击时可以修改数据源。见下文:

protocol FooterDelegate {
    func requestedToDisplayMoreItemsFrom(footer: Footer, display:Bool)
}
class Footer: UIView {
    var delegate : FooterDelegate?
    var section : Int?

    override func awakeFromNib() {
        let tapReco = UITapGestureRecognizer(target: self, action: #selector(Footer.tapped))
        /*
        . setup
        . codes 
        . here
        .
        */
    }

    func tapped() {
        if let del = delegate {
            del.requestedToDisplayMoreItemsFrom(footer: self, display: true)
        }
    }
}
下面是如何使用它。我不会发布任何关于如何将其显示为footerView的代码,我很确定您可以自己编写,如果没有的话,您可以在那里找到很多资源

class ViewController: UIViewController, FooterDelegate {
    var dataSource = [[String],[String]]

    func requestedToDisplayMoreItemsFrom(footer: Footer, display: Bool) {
        if display {
            self.dataSource[footer.section!].append("item1")
            self.dataSource[footer.section!].append("item2")
            self.dataSource[footer.section!].append("item3")
        } else {
            self.dataSource[footer.section!].removeLast()
            self.dataSource[footer.section!].removeLast()
            self.dataSource[footer.section!].removeLast()
        }
            self.tableView.reloadData()
    }

可以使用此代码插入单元格

var cells: [Any] = [IndexPath(row: 1, section: 2), IndexPath(row: 2, section: 2)]
CATransaction.begin()
CATransaction.setCompletionBlock({() -> Void in
    tableView.reloadData()
})
tableView.beginUpdates()
tableView.insertRows(at: cells, with: .fade)
tableView.endUpdates()
CATransaction.commit()
要删除单元格,请使用代码

var cells: [Any] = [IndexPath(row: 1, section: 2), IndexPath(row: 2, section: 2)]
CATransaction.begin()
CATransaction.setCompletionBlock({() -> Void in
    tableView.reloadData()
})
tableView.beginUpdates()
tableView.deleteRows(at: cells, with: .fade)
tableView.endUpdates()
CATransaction.commit()
你使用这个图书馆。此库易于使用,可高效折叠tableview单元格(展开和折叠)@Ali Murad[1]: