UICollectionView翻页效果实现
-
在写文章之前,先介绍下我的项目需求,我们项目是一个电商APP,当前功能是在商品详情里实现一个商品推荐模板,要实现商品快速浏览,并实现快速翻页功能,贴上我实现的一个效果动图,如下:
-
以前实现照片浏览功能,也用过collectionview实现或者pageController实现,那时候也只是单个翻页,只需要一个collectionView就可实现。当前我的需求是有多个商品需要展示,所以用到多个collectionView。
-
具体思路就是第一个父级collectionView充当翻页,在子页里嵌套collectionView实现商品预览,需要注意的是子页要关掉滑动交互,不然也许会出现手势冲突,剩下的就是在父级collectinView里实现翻页控制了,用到scrollView代理。好了废话少说,上代码。
protocolDetailRecommendTableviewCellDelegate:NSObjectProtocol{ funcselectRecommendGoodsIndex(goodsInfoId:Int)
}
classDetailRecommendTableviewCell:UITableViewCell,Reusable{
vartitleLab:UILabel!
varcollectionView:UICollectionView!
varpageContor:UIPageControl!
varseeAllBtn:UIButton!
var delegate:DetailRecommendTableviewCellDelegate!
varpresentOffset =CGPoint.zero
varisFront:Bool=true//默认往前翻页
varisDrag:Bool=false//默认没有拖动
varlastOffset =CGPoint.zero//最后一次偏移量
varblockAction:(()->())!
varpages:Int=1
varcurrentPage:Int=0
varrecommendGoodsList = [GoodsInfo](){
didSet{
if recommendGoodsList.count > 3{
self.setUP(line:2)
}else if recommendGoodsList.count > 0 && recommendGoodsList.count <= 3{
self.setUP(line:1)
}else{
self.setUP(line:0)
}
if recommendGoodsList.count > 24{
self.titleLab.isHidden=false
self.collectionView.isHidden=false
self.pageContor.isHidden=false
self.seeAllBtn.isHidden=false
}else if recommendGoodsList.count > 6 && recommendGoodsList.count <= 24{
self.titleLab.isHidden=false
self.collectionView.isHidden=false
self.pageContor.isHidden=false
self.seeAllBtn.isHidden=true
}else if recommendGoodsList.count > 3 && recommendGoodsList.count <= 6{
self.titleLab.isHidden=false
self.collectionView.isHidden=false
self.pageContor.isHidden=true
self.seeAllBtn.isHidden=true
}else if recommendGoodsList.count < 3 && recommendGoodsList.count > 0{