当前位置:K88软件开发文章中心编程语言APP编程CrossApp → 文章内容

CACollectionView(容器)

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-23 13:52:01

由 ?﹏???ζ???﹏﹏? 创建, 最后一次修改 2016-09-07 类说明CACollectionView同CATableView类似,主要用于数据的展示,实现了tableView的基本功能,同时对tableView拓展,更完美的进行展示数据。CACollectionView的使用方法和CATableView比较类似,我们也要分别使用:CACollectionView、CACollectionViewCell、CACollectionViewDelegate、CACollectionViewDataSource来构建。CACollectionView是表格视图的容器,是容器的载体。CACollectionViewCell是表格视图的一个单元(本节后面简称cell)。CACollectionViewDelegate是交互代理,响应cell选中和取消状态。CACollectionViewDataSource是数据代理,设置Selection个数及Selection包含cell个数。CACollectionView 属性(点击查看方法介绍)属性说明CollectionViewDataSource添加数据代理CollectionViewDelegate添加交互代理CollectionHeaderView添加头部视图CollectionFooterView添加尾部视图CollectionHeaderHeight设置头部的高度CollectionFooterHeight设置尾部的高度HoriInterval水平间隔VertInterval垂直间隔AllowsSelection允许选择AllowsMultipleSelection允许多个选择AlwaysTopSectionHeader总是顶部的标题AlwaysBottomSectionFooter总是底部的节尾CACollectionView 方法(点击查看方法介绍)方法说明createWithFrame创建,并指定其Frame,默认Frame为(0,0,0,0)createWithCenter创建,并指定其Center,默认Center为(0,0,0,0)dequeueReusableCellWithIdentifier从复用队列中寻找指定标识符的cellsetAllowsSelection是否开启cell选择setAllowsMultipleSelection是否可以多选cellsetSelectRowAtIndexPath通过索引选择一行setUnSelectRowAtIndexPath通过索引取消选择一行setShowsScrollIndicators设置显示滚动指示器cellForRowAtIndexPath根据索引获取显示的cellgetHighlightCollectionCell获取高亮显示的collectioncellswitchPCMode开关PC模式init初始化clearData清除数据reloadData重载数据CACollectionViewDelegate 方法(点击查看方法介绍)方法说明collectionViewDidSelectCellAtIndexPath选中cell时调用collectionViewDidDeselectCellAtIndexPath取消选择cell时调用CACollectionViewDataSource 方法(点击查看方法介绍)方法说明collectionCellAtIndex获取指定cellcollectionViewHeightForRowAtIndexPathcell的高度numberOfItemsInRowsInSection每个cell里的item数量numberOfRowsInSection获取对应的section所包含的cell个数numberOfSections获取tableview包含的section个数collectionViewSectionViewForHeaderInSectionheaderView的内容collectionViewHeightForHeaderInSection每个section的headerViewcollectionViewSectionViewForFooterInSectionfooterView的内容collectionViewHeightForFooterInSection每个section的footerViewcollectionViewWillDisplayCellAtIndex回调当前将要显示的collectionView我们本机的示例,不再使用自定义的CACollectionViewCell的方法来实现,我们来看看本节的示例代码:FirstViewController.h内容:#ifndef __HelloCpp__ViewController__#define __HelloCpp__ViewController__ #include <iostream>#include "CrossApp.h" USING_NS_CC; class FirstViewController : public CAViewController, CACollectionViewDelegate, CACollectionViewDataSource{ public: FirstViewController(); virtual ~FirstViewController(); protected: void viewDidLoad(); void viewDidUnload(); public: //选中item时调用 virtual void collectionViewDidSelectCellAtIndexPath(CACollectionView *collectionView, unsigned int section, unsigned int row, unsigned int item); //取消item是调用 virtual void collectionViewDidDeselectCellAtIndexPath(CACollectionView *collectionView, unsigned int section, unsigned int row, unsigned int item); //获取指定cell virtual CACollectionViewCell* collectionCellAtIndex(CACollectionView *collectionView, const DSize& cellSize, unsigned int section, unsigned int row, unsigned int item); //section的个数 virtual unsigned int numberOfSections(CACollectionView *collectionView); //section中的cell个数 virtual unsigned int numberOfRowsInSection(CACollectionView *collectionView, unsigned int section); //每个cell中Item的个数 virtual unsigned int numberOfItemsInRowsInSection(CACollectionView *collectionView, unsigned int section, unsigned int row); //cell的高度 virtual unsigned int collectionViewHeightForRowAtIndexPath(CACollectionView* collectionView, unsigned int section, unsigned int row); private: //用于获得屏幕的size CADipSize size; //CACollectionView CACollectionView* p_Conllection; //颜色容器 std::vector<CAColor4B> colorArr;}; #endif /* defined(__HelloCpp__ViewController__) */FirstViewController.cpp内容:#include "FirstViewController.h" FirstViewController::FirstViewController(){} FirstViewController::~FirstViewController(){} void FirstViewController::viewDidLoad(){ //获得屏幕大小 size = this->getView()->getBounds().size; //随机出颜色 for (int i = 0; i < 40; i++) { char r = CCRANDOM_0_1() * 255; char g = CCRANDOM_0_1() * 255; char b = CCRANDOM_0_1() * 255; //将随机的ccc4对象放入到容器里 colorArr.push_back(ccc4(r, g, b, 255)); } //生成CACollectionView p_Conllection = CACollectionView::createWithFrame(this->getView()->getBounds()); //开启选中 p_Conllection->setAllowsSelection(true); //开启多选 p_Conllection->setAllowsMultipleSelection(true); /

[1] [2] [3]  下一页


CACollectionView(容器)