滑动以在UICollectionView上显示其他按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了滑动以在UICollectionView上显示其他按钮相关的知识,希望对你有一定的参考价值。

我正在尝试创建一个类似于tableView滑动的功能来显示删除按钮,唯一的区别是我显示了多个按钮并将其实现在collectionView内的collectionViewCell上。我希望能够将内部collectionView向右滑动,并在左侧将多个选项按钮捕捉到视图中。

像这样的东西:

enter image description here

我明白我可能需要使用UIPanGestureRecognizer,对我来说问题是panView的集合嵌套在另一个collectionView中,我不确定如何正确使用UIGestureRecognizer以便细胞一起滑动和按钮卡入视图。

任何建议都非常感谢。

答案

在集合视图中设置委托以获取操作

protocol ColumnBookCellDelegate: class {

        func deleteBook(_ book: Book)
    }

class ColumnBookCell: AZCollectionViewCell{
     weak var deleteDelegate: ColumnBookCellDelegate?

     var canBeRemove: Bool = false{

        didSet{

            if self.canBeRemove{

                let swipeL = UISwipeGestureRecognizer(target: self, action: #selector(self.showDelete))
                swipeL.numberOfTouchesRequired = 1
                swipeL.direction = .left
                self.addGestureRecognizer(swipeL)
                let swipeR = UISwipeGestureRecognizer(target: self, action: #selector(self.hideDelete))
                swipeR.numberOfTouchesRequired = 1
                swipeR.direction = .right
                self.addGestureRecognizer(swipeR)

            }
        }
    }

// Show Delete Button
    func showDelete(){

        // unhidden button here 
        // self.button.isHidden = false
        UIView.animate(withDuration: 0.2) { 

            self.layoutIfNeeded()
        }
    }

    // Hide Delete Button
    func hideDelete(){
        // hidden button here 
        // self.button.isHidden = true
        // self.deleteButton.aZConstraints.width?.constant = 0
        UIView.animate(withDuration: 0.2) {

            self.layoutIfNeeded()
        }
    }

    // Delete Action
    func deleteAction(){

        self.deleteDelegate?.deleteBook(self.book)
        self.hideDelete()
    }
    // blob blob blob

}

以上是关于滑动以在UICollectionView上显示其他按钮的主要内容,如果未能解决你的问题,请参考以下文章

文档/库实现拉取以在 UICollectionView/ UITableView 中显示更多菜单选项

滑动以在新的viewcontroller中显示第二张图片

在 UICollectionView 上禁用单元格重用

UICollectionView 的每个部分的独立滚动?

处理 UICollectionView 单元格上的滑动:在 UICollectionView 或每个单元格上实现处理程序?

iOS UICollectionView横向滑动并且横向加载数据