cocos2dx3.x的TableView使用
1.TableView
TableView直译为表视图(感觉则拗口),一般用于展示信息或者商城商品等。可以直接理解为一个信息展示的框。
2.效果展示
这里我做了一个3x3的TablelView表视图,展示了几张英雄的图片(其实就一个)。
3.代码
#ifndef TABLEVIEW_TEST_H_
#define TABLEVIEW_TEST_H_
#include"cocos2d.h"
#include"cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
class TableViewTest:public Layer,public TableViewDataSource,public TableViewDelegate
{
public:bool init()override;static Scene* createScene();Size tableCellSizeForIndex(TableView* table,ssize_t idx)override;TableViewCell* tableCellAtIndex(TableView* table,ssize_t idx)override;ssize_t numberOfCellsInTableView(TableView* table)override;void tableCellTouched(TableView* table,TableViewCell* cell)override;void tableCellHighlight(TableView* table, TableViewCell* cell)override;void tableCellUnhighlight(TableView* table, TableViewCell* cell)override;CREATE_FUNC(TableViewTest);};
#endif // !TABLEVIEW_TEST_H_
#include "TableViewTest.h"bool TableViewTest::init()
{if (!Layer::init()){return false;}//const auto size = Director::getInstance()->getWinSize();//const auto layer = LayerColor::create(Color4B::RED);this->addChild(layer);//auto tableView = TableView::create(this,Size(270,270));tableView->setDelegate(this);tableView->setPosition(size/2);tableView->reloadData();tableView->setDirection(ScrollView::Direction::VERTICAL);tableView->setVerticalFillOrder(TableView::VerticalFillOrder::BOTTOM_UP);//tableView->setContentOffset(Vec2(45,45),true);this->addChild(tableView);return true;
}Scene* TableViewTest::createScene()
{auto scene = Scene::create();auto layer = TableViewTest::create();scene->addChild(layer);return scene;
}Size TableViewTest::tableCellSizeForIndex(TableView* table, ssize_t idx)
{return Size(270,90);
}TableViewCell* TableViewTest::tableCellAtIndex(TableView* table, ssize_t idx)
{auto tablecell = table->dequeueCell();if (!tablecell){tablecell = TableViewCell::create();auto cellSprite1 = Sprite::create("header1001.png");cellSprite1->setPosition(Vec2(45,45));tablecell->addChild(cellSprite1);auto cellSprite2 = Sprite::create("header1001.png");cellSprite2->setPosition(Vec2(135, 45));tablecell->addChild(cellSprite2);auto cellSprite3 = Sprite::create("header1001.png");cellSprite3->setPosition(Vec2(225, 45));tablecell->addChild(cellSprite3);}return tablecell;
}ssize_t TableViewTest::numberOfCellsInTableView(TableView* table)
{return ssize_t(10);
}void TableViewTest::tableCellTouched(TableView* table, TableViewCell* cell)
{log("%d", cell->getIdx());
}void TableViewTest::tableCellHighlight(TableView* table, TableViewCell* cell)
{log("Click Cell %d",cell->getIdx());
}void TableViewTest::tableCellUnhighlight(TableView* table, TableViewCell* cell)
{log("Release Cell %d", cell->getIdx());
}
4.细节说明
1.尽管返回TableCell的大小的方法并非纯虚函数,但是经过我测试发现,不返回其大小会导致无法绘制的情况出现,所以需要实现。
Size tableCellSizeForIndex(TableView* table,ssize_t idx)override;
2.再为TabelCell添加子节点即需要显示的内容时,需要设置坐标,默认为0坐标,而图片精灵的锚点一般为0.5,所以不设置坐标会导致只会显示1/4的图片。
3.经过测试可以发现3个触摸函数的执行顺序为tableCellHightlight()->tableCellUnhightlight()->tableCellTouched();
cocos2dx3.x的TableView使用相关推荐
- 知识点回顾-简单的TableView单组数据展示/多组数据展示
1 拖入TableView到UIView中,连线DataSource 2 3 1.实现数据源方法 4 - (NSInteger)tableView:(UITableView *)tableView n ...
- ((ios开发学习笔记九)) Simple TableView 实现(附 实例源码)
实现效果: 实现过程: Step One 创建单个窗体项目 Step Two 创建control 接口 Step Three 创建窗体和关联关系 Step four 实现table view 的接口 ...
- xcode 4.3.2 use storyboard创建TableView
xcode 4.3.2 use storyboard 使用TableView,显示一个颜色列表,表格包括一张图片,一个文本,一行副文本. TableView 呈现列表格式的数据,每一行是一个UITab ...
- 取消tableView多余的横线
- (void)setExtraCellLineHidden: (UITableView *)tableView{ UIView *view = [UIView new]; view. ...
- 优雅地分离tableview回调
你是否遇到过这样的需求,在tableview中显示一列数据,点击某一个cell时,在此cell下显示相应的附加信息.如下图: 你是不是觉得需求很容易实现,只要使用tableview的insertRow ...
- swift 4.0 创建tableview 自定义cell
// // ViewController.swift // AlamofileDemo // // Created by Alex on 2019/3/5. // Copyright © 2019 A ...
- iOS下拉tableView实现上面的图片放大效果
#import "ViewController.h" #define kScreenbounds [UIScreen mainScreen].bounds #define kScr ...
- 点击TableView任一行跳转详情页面会跳转两次的解决办法
在做TableView跳转的时候,发现实际上生成了两个detail view.我 navigate back 的时候,也是先看到一次detail view,然后才回到tableView的. 这是因为: ...
- IOS tableView删除数据
NSMutableArray *_allshops; NSMutableArray *_deleteshops; -(IBAction)remove{ 1. //记录删除的行号 //创建动态数组存放行 ...
最新文章
- python正态检验_Python检验数据是否正态分布
- 项目实施双机热备备忘
- List VS Set
- oracle之trunc(sysdate)
- django中使用原生sql
- centos7配置mysql其他机器访问_CentOS7安装MySQL并开启远程访问详解
- 虚函数,虚基类 与纯虚函数 一
- Deep learning with python notebooks 笔记 第一章 深度学习基础
- C++中的左值和右值的区别
- mysql数据库中修改错别字_MySQL 8.0.23 更新分享-爱可生
- Java基础,删除指定索引的元素,编程思路详解
- “程序员的理财计划”-待完善
- IATF16949认证辅导,IATF16949五大核心工具也称质量管理五大工具包括哪些
- 解决teamview检测为商业用途的方法记录
- php5 安装imagick,为php安装imagick拓展与image magick图像处理库
- wireshark抓包并复原图像
- 【贪心法】黑白连线问题
- [转]移动IIS7.5默认inetpub目录_se7en3_新浪博客
- dwr-signatures
- 播动师,直播广场,一目了然看到直播态势
热门文章
- 弥散张量成像(diffusion tensor imaging,DTI)常用指标
- 关于嵌入式编程中的uint8_t、uint16_t......
- html文本框颜色填充颜色设置,文本框填充色怎么设置
- 免费可商用的图片资源推荐
- MySQL数据库——备份与恢复
- 基于ICP算法的三维点云数据拼接算法的实现
- 什么是物联网NB-IoT技术?
- reactive和ref的特性和区别
- ESP32学习(3):ESP32上运行ILI9341驱动LCD
- 异地恋的自愈系小故事:企鹅先生和北极熊小姐