×

一、简介与环境搭建

CrossApp简介CrossApp摘要CrossApp坐标系浅谈CrossApp屏幕适配方案CrossApp源码结构CrossApp的MVC模式CrossApp项目结构及入口CrossApp内存管理CrossApp类结构图创建CrossApp工程CAVector、CAList、CADeque、CAMap(数据容器)Windows 开发下VS2013环境搭建Windows 开发下Android环境配置Mac OS 开发下Xcode环境搭建Mac OS 下iOS移植android环境配置

二、CrossApp简单控件的使用

DLayout(自适应布局)CALabel(显示文本)CAImage、CAImageView(显示一张图片)CAScale9ImageView(九宫格图片拉伸)CAButton(按钮)CATextView(多行输入框)CATextViewDelegateCASwitch(开关控件)CAProgress(进度条)CAAlertView(提示框)CAScrollView(滚动视图)CAScrollViewDelegateCAListView(列表)CAListViewDataSourceCAListViewDelegateCATableView(表单视图)CATableViewDataSourceCATableViewDelegateCATableViewCellCACollectionView(容器)CACollectionViewDataSourceCASlider(滑动条)CAStepper(步进控件)CAPageView(页面切换)CAPageViewDelegateCAWaterfallView(瀑布流控件)CAWaterfallViewDataSourceCAWaterfallViewDelegateCAWaterfallViewCellCATextField(输入框)CATextFieldDelegateCAAutoCollectionView(自动化布局容器)CAAutoCollectionViewDataSourceCAAutoCollectionViewDelegateCAVideoPlayerControlView(视频播放器控制视图)CAVideoPlayerControlViewDelegateCAWebView(Web视图控件)CAWebViewDelegateCAGifView(显示Gif图片)CARenderImage(图像渲染)CASegmentedControl(分段控制)CAPickerView(视图选择器)CAPickerViewDataSourceCAPickerViewDelegateCAActivityIndicatorView(活动指示器)CrossApp UIEdit(UI编辑器)

三、视图控制

CAViewController(视图控制器)CADrawerController(抽屉控制器)CANavigationController(导航控制器)CANavigationBarDelegateCANavigationBarItemCANavigationBarCATabBarController(标签栏控制器)CATabBarDelegateCATabBarItem

四、调用系统支持

CADevice

五、数据的解析与存储

CAUserDefault简单存储SQlite的使用json解析xml解析

六、网络

网络通信之httphttp请求网络图

七,动画

CAViewAnimation(动画实现)

八、宏定义

宏定义

九、其他控件的使用

CAViewCAViewDelegateCATextField(输入框1.2以前版本)CAObjectCAResponderCAPullToRefreshViewCAControlCAWindowCABarItemCABarButtonItemCASchedulerCAMediaDelegateCAKeypadDelegate

CAAutoCollectionView(自动化布局容器)


类说明:

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 设置尾部的高度
CollectionViewOrientation CollectionView方向取向
CollectionViewCellHoriAlign CollectionView的Cell水平对齐
CollectionViewCellVertAlign CollectionView的Cell垂直对齐
HoriCellInterval cell水平间隔
VertCellInterval cell垂直间隔
HoriMargins 水平边距
VertMargins 垂直边距
AllowsSelection 允许选择
AllowsMultipleSelection 允许多个选择
AlwaysTopSectionHeader 总是顶部的标题
AlwaysBottomSectionFooter 总是底部的节尾


CAAutoCollectionView 方法(点击查看方法介绍)

说明 说明
createWithFrame 创建,并指定其Frame
createWithCenter 创建,并指定Color
init 初始化
reloadData 重载数据
dequeueReusableCellWithIdentifier 从复用队列中寻找指定标识符的cell
setAllowsSelection 是否开启cell选择
setAllowsMultipleSelection 是否可以多选cell
setSelectRowAtIndexPath 通过索引选择一行
setUnSelectRowAtIndexPath 通过索引取消选择一行
setShowsScrollIndicators 设置显示滚动指示器
cellForRowAtIndexPath 根据索引获取显示的cell
displayingCollectionCell 显示CollectionCell
getHighlightCollectionCell 获取高亮显示的collectioncell
switchPCMode 开关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.
    // e.g. self.myOutlet = nil;
}
//选中
void FirstViewController::collectionViewDidSelectCellAtIndexPath(CAAutoCollectionView *collectionView, unsigned int section, unsigned int item)
{
    //选中
    CCLog("选中");
}
//取消选中
void FirstViewController::collectionViewDidDeselectCellAtIndexPath(CAAutoCollectionView *collectionView, unsigned int section, unsigned int item)
{
    //取消选中
    CCLog("取消选中");
}
//获取指定cell
CACollectionViewCell* FirstViewController::collectionCellAtIndex(CAAutoCollectionView *collectionView, const DSize& cellSize, unsigned int section, unsigned int item)
{
    //根据标识获得CACollectionViewCell
    CACollectionViewCell* p_Cell = collectionView->dequeueReusableCellWithIdentifier("CrossApp");
    //如果没有找到相应的CACollectionViewCell则新建一个
    if (p_Cell == NULL)
    {
        p_Cell = CACollectionViewCell::create("CrossApp");
         
        //生成Item背景
        CAView* itemImage = CAView::createWithFrame(DRect(0, 0, cellSize.width, cellSize.height));
        itemImage->setTag(99);
        p_Cell->addSubview(itemImage);
        DSize itemSize = itemImage->getBounds().size;
         
        //生成itemCALabel
        CALabel* itemText = CALabel::createWithCenter(DRect(itemSize.width*0.5, itemSize.height*0.5, 150, 40));
        itemText->setTag(100);
        itemText->setFontSize(29);
        itemText->setTextAlignment(CATextAlignmentCenter);
        itemText->setVerticalTextAlignmet(CAVerticalTextAlignmentCenter);
        itemImage->addSubview(itemText);
    }
     
    //设置Item背景颜色
    CAView* itemImageView = p_Cell->getSubviewByTag(99);
    itemImageView->setColor(colorArr.at(item));
    CCLog("row = %d", item);
     
    //设置itme文本显示
    char pos[20] = "";
    sprintf(pos, "(%d,%d)", section, item);
    CALabel* itemText = (CALabel*)p_Cell->getSubviewByTag(99)->getSubviewByTag(100);
    itemText->setText(pos);
    return  p_Cell;
}
//项目大小
DSize FirstViewController::collectionViewSizeForItemAtIndexPath(CAAutoCollectionView* collectionView, unsigned int section, unsigned int item)
{
    DSize size;
    size.width = (this->getView()->getBounds().size.width - 40 * 4) / 3;
    size.height = (this->getView()->getBounds().size.width - 40 * 4) / 3;
    return size;
}
//每个Section中Item的个数
unsigned int FirstViewController::numberOfItemsInSection(CAAutoCollectionView *collectionView, unsigned int section)
{
    return 15;
}
//section的个数
unsigned int FirstViewController::numberOfSections(CAAutoCollectionView *collectionView)
{
    return 10;
}

CAAutoCollectionView 属性说明

CollectionViewDataSource

类型:CAAutoCollectionViewDataSource*

解释:添加数据代理,set/get{}。


CollectionViewDelegate

类型:CAAutoCollectionViewDelegate*

解释:添加交互代理,set/get{}。


CollectionHeaderView

类型:CAView*

解释:添加头部视图,set/get{}。


CollectionFooterView

类型:CAView*

解释:添加尾部视图,set/get{}。


CollectionHeaderHeight

类型:unsigned int

解释:设置头部的高度,set/get{}。


CollectionFooterHeight

类型:unsigned int

解释:设置尾部的高度,set/get{}。


CollectionViewOrientation

类型:CACollectionViewOrientation

解释:CollectionView方向取向,set/get{}。


CollectionViewCellHoriAlign

类型:CACollectionViewCellHoriAlign

解释:CollectionView的Cell水平对齐,set/get{}。


CollectionViewCellVertAlign

类型:CACollectionViewCellVertAlign

解释:CollectionView的Cell垂直对齐,set/get{}。


HoriCellInterval

类型:unsigned int

解释:cell水平间隔,set/get{}。


VertCellInterval

类型:unsigned int

解释:cell垂直间隔,set/get{}。


HoriMargins

类型:unsigned int

解释:水平边距,set/get{}。


VertMargins

类型:unsigned int

解释:垂直边距,set/get{}。


AllowsSelection

类型:bool

解释:允许选择,is{}。


AllowsMultipleSelection

类型:bool

解释:允许多个选择,is{}。


AlwaysTopSectionHeader

类型:bool

解释:总是顶部的标题,is/set{}。


AlwaysBottomSectionFooter

类型:bool

解释:总是底部的节尾,is/set{}。


CAAutoCollectionView 方法说明

static CAAutoCollectionView* createWithFrame(const DRect& rect);

返回值:CAAutoCollectionView* 

参数:

类型 参数名 说明
const DRect& rect 区域大小

解释:创建,并指定其Frame


static CAAutoCollectionView* createWithCenter(const DRect& rect);

返回值:CAAutoCollectionView* 

参数:

类型 参数名 说明
const DRect&  rect 中心点的位置及大小

解释:创建,并指定Color


virtual bool init();

返回值:bool

参数:

解释:初始化


void reloadData();

返回值:void

参数:

解释:重载数据


CACollectionViewCell* dequeueReusableCellWithIdentifier(const char* reuseIdentifier);

返回值:CACollectionViewCell*

参数:

类型 参数名 说明
const char*  reuseIdentifier 重载标识符

解释:从复用队列中寻找指定标识符的cell


virtual void setAllowsSelection(bool var);

返回值:void

参数:

类型 参数名 说明
bool var 是否开启

解释:是否开启cell选择


virtual void setAllowsMultipleSelection(bool var);

返回值:void

参数:

类型 参数名 说明
bool var 是否开启

解释:是否可以多选cell


void setSelectRowAtIndexPath(unsigned int section, unsigned int item);

返回值:void

参数:

类型 参数名 说明
unsigned int  section section
unsigned int item 项目数量

解释:通过索引选择一行


void setUnSelectRowAtIndexPath(unsigned int section, unsigned int item);

返回值:void

参数:

类型 参数名 说明
unsigned int  section section
unsigned int item 项目数量

解释:通过索引取消选择一行


virtual void setShowsScrollIndicators(bool var);

返回值:void

参数:

类型 参数名 说明
bool var 是否开启

解释:设置显示滚动指示器


CACollectionViewCell* cellForRowAtIndexPath(unsigned int section, unsigned int row, unsigned int item);

返回值:CACollectionViewCell* 

参数:

类型 参数名 说明
unsigned int  section section
unsigned int row
unsigned int item 项目数量

解释:根据索引获取显示的cell


const CAVector& displayingCollectionCell();

返回值:CAVector

参数:

解释:显示CollectionCell


CACollectionViewCell* getHighlightCollectionCell();

返回值:CACollectionViewCell*

参数:

解释:获取高亮显示的collectioncell


virtual void switchPCMode(bool var);

返回值:void

参数:

类型 参数名 说明
bool var 是否开启

解释:开关PC模式







分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)