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

CAAutoCollectionView(自动化布局容器)

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

由 ?﹏???ζ???﹏﹏? 创建, 最后一次修改 2016-09-07 类说明:CAAutoCollectionView同CATableView类似,主要用于数据的展示,实现了tableView的基本功能,同时对tableView拓展,更完美的进行展示数据。CAAutoCollectionView的使用方法和CATableView比较类似,我们也要分别使用:CAAutoCollectionView、CACollectionViewCell、CAAutoCollectionViewDelegate、CAAutoCollectionViewDataSource来构建。CAAutoCollectionView是表格视图的容器,是容器的载体。CACollectionViewCell是表格视图的一个单元(本节后面简称cell)。CAAutoCollectionViewDelegate是交互代理,响应cell选中和取消状态。CAAutoCollectionViewDataSource是数据代理,设置Selection个数及Selection包含Item个数。CAAutoCollectionView 属性(点击查看方法介绍)属性说明CollectionViewDataSource添加数据代理CollectionViewDelegate添加交互代理CollectionHeaderView添加头部视图CollectionFooterView添加尾部视图CollectionHeaderHeight设置头部的高度CollectionFooterHeight设置尾部的高度CollectionViewOrientationCollectionView方向取向CollectionViewCellHoriAlignCollectionView的Cell水平对齐CollectionViewCellVertAlignCollectionView的Cell垂直对齐HoriCellIntervalcell水平间隔VertCellIntervalcell垂直间隔HoriMargins水平边距VertMargins垂直边距AllowsSelection允许选择AllowsMultipleSelection允许多个选择AlwaysTopSectionHeader总是顶部的标题AlwaysBottomSectionFooter总是底部的节尾CAAutoCollectionView 方法(点击查看方法介绍)说明说明createWithFrame创建,并指定其FramecreateWithCenter创建,并指定Colorinit初始化reloadData重载数据dequeueReusableCellWithIdentifier从复用队列中寻找指定标识符的cellsetAllowsSelection是否开启cell选择setAllowsMultipleSelection是否可以多选cellsetSelectRowAtIndexPath通过索引选择一行setUnSelectRowAtIndexPath通过索引取消选择一行setShowsScrollIndicators设置显示滚动指示器cellForRowAtIndexPath根据索引获取显示的celldisplayingCollectionCell显示CollectionCellgetHighlightCollectionCell获取高亮显示的collectioncellswitchPCMode开关PC模式我们本机的示例,不再使用自定义的CACollectionViewCell的方法来实现,我们来看看本节的示例代码:FirstViewController.h内容:#ifndef __HelloCpp__ViewController__#define __HelloCpp__ViewController__#include <iostream>#include "CrossApp.h"USING_NS_CC;class FirstViewController : public CAViewController, CAAutoCollectionViewDataSource, CAAutoCollectionViewDelegate{ protected: void viewDidLoad(); void viewDidUnload(); public:FirstViewController(); virtual ~FirstViewController(); //选中 virtual void collectionViewDidSelectCellAtIndexPath(CAAutoCollectionView *collectionView, unsigned int section, unsigned int item); //取消选中 virtual void collectionViewDidDeselectCellAtIndexPath(CAAutoCollectionView *collectionView, unsigned int section, unsigned int item); //获取指定cell virtual CACollectionViewCell* collectionCellAtIndex(CAAutoCollectionView *collectionView, const DSize& cellSize, unsigned int section, unsigned int item); //项目大小 virtual DSize collectionViewSizeForItemAtIndexPath(CAAutoCollectionView* collectionView, unsigned int section, unsigned int item); //每个Section中Item的个数 virtual unsigned int numberOfItemsInSection(CAAutoCollectionView *collectionView, unsigned int section); //section的个数 virtual unsigned int numberOfSections(CAAutoCollectionView *collectionView); private: DSize size; CAAutoCollectionView* p_AutoCollection; 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_AutoCollection = CAAutoCollectionView::createWithFrame(this->getView()->getBounds()); DRect rect = this->getView()->getBounds(); CCLog("MaxX = %f", rect.getMaxX()); CCLog("MaxX = %f", rect.getMaxY()); //开启选中 p_AutoCollection->setAllowsSelection(true); //开启多选 p_AutoCollection->setAllowsMultipleSelection(true); //绑定交互代理 p_AutoCollection->setCollectionViewDelegate(this); //绑定数据代理 p_AutoCollection->setCollectionViewDataSource(this); //item水平间的距离 p_AutoCollection->setHoriMargins(40); p_AutoCollection->setHoriCellInterval(40); //p_AutoCollection->setCollectionHeaderHeight(40); //itme竖直间的距离 p_AutoCollection->setVertMargins(40); p_AutoCollection->setVertCellInterval(40); //p_AutoCollection->setCollectionFooterHeight(40); //添加到屏幕渲染 this->getView()->addSubview(p_AutoCollection); }void FirstViewController::viewDidUnload(){ // Release any retained subviews of the main view.

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


CAAutoCollectionView(自动化布局容器)