1. 程式人生 > >cocos2dx tableview基礎:實現多圖片的滑動顯示

cocos2dx tableview基礎:實現多圖片的滑動顯示

通過tableview實現滑動顯示26個字母圖片,點選圖片執行相應的動作。

tableview 需要繼承TableViewDataSource(資料來源),TableViewDelegate(觸屏事件處理),同時實現其虛擬函式。

程式碼如下:

標頭檔案TableViewTest.h如下

#ifndef __macstudycocos2dx__TableViewTest__

#define __macstudycocos2dx__TableViewTest__

#include <stdio.h>

#include "cocos2d.h"

#include "extensions/cocos-ext.h"

USING_NS_CC;

USING_NS_CC_EXT;

//void runTableViewTest();

class TableViewTest:publiccocos2d::Layer,publiccocos2d::extension::TableViewDataSource,publiccocos2d::extension::TableViewDelegate

{

public:

   static cocos2d::Scene* createScene();

   virtual bool init();

   void toExtensionMainLayer(cocos2d

::Ref *sender);

CREATE_FUNC(TableViewTest);

   virtual void scrollViewDidScroll(cocos2d::extension::ScrollView* view){};

//重寫滑動事件

   virtual void scrollViewDidZoom(cocos2d::extension::ScrollView* view){};

//重寫縮放事件

//以下重寫TableViewDataSource的虛擬函式

virtualvoid tableCellTouched(cocos2d::extension::TableView* table,

cocos2d::extension::TableViewCell* cell);

//定義單元觸碰事件

   virtual Size tableCellSizeForIndex(TableView *table,ssize_t idx);

//定義單元的大小

   virtual TableViewCell* tableCellAtIndex(cocos2d::extension::TableView* table,ssize_t idx);

//定義單元格

   virtual ssize_t numberOfCellsInTableView(cocos2d::extension::TableView* table);

//定義單元格數量

};

#endif /* defined(__macstudycocos2dx__TableViewTest__) */

TableViewTest.cpp如下:

#include "TableViewTest.h"

Scene* TableViewTest::createScene()

{

// 'scene' is an autorelease object

   auto scene = Scene::create();

// 'layer' is an autorelease object

   auto layer = TableViewTest::create();

// add layer as a child to scene

    scene->addChild(layer);

// return the scene

   return scene;

}

boolTableViewTest::init(){

   if (!Layer::init()) {

return false;

    }

   Size winSize=Director::getInstance()->getWinSize();

   TableView* tableView=TableView::create(this,Size(800,300));

    tableView->setDirection(ScrollView::Direction::HORIZONTAL);

    tableView->setPosition(Vec2(20,winSize.height/2-30));

    tableView->setDelegate(this);

   this->addChild(tableView);

    tableView->reloadData();

return true;

}

voidTableViewTest::tableCellTouched(cocos2d::extension::TableView* table,TableViewCell* cell){

log("cell touched at index:%ld",cell->getIdx());

}

SizeTableViewTest::tableCellSizeForIndex(cocos2d::extension::TableView* table,ssize_t idx){

   return Size(300,150);

}

TableViewCell* TableViewTest::tableCellAtIndex(cocos2d::extension::TableView* table,ssize_t idx){

   auto letindex=idx+1;

   auto string=String::createWithFormat("let%ld.png",letindex);

   TableViewCell *cell=table->cellAtIndex(idx);

   if (!cell) {

        cell=newTableViewCell();

        cell->autorelease();

       auto sprite=Sprite::create(string->getCString());

        sprite->setAnchorPoint(Vec2::ZERO);

        sprite->setPosition(Vec2(0,0));

        cell->addChild(sprite);

       auto label=Label::createWithSystemFont(string->getCString(),"arial", 30);

        label->setPosition(Vec2::ZERO);

        label->setAnchorPoint(Vec2::ZERO);

        label->setTag(123);

        cell->addChild(label);

    }

   else{

       auto label=(Label*)cell->getChildByTag(123);

        label->setString(string->getCString());

    }

   return cell;

}

ssize_tTableViewTest::numberOfCellsInTableView(cocos2d::extension::TableView *table){

   return 26;

}

最好實現的效果如下:

相關推薦

cocos2dx tableview基礎實現圖片滑動顯示

通過tableview實現滑動顯示26個字母圖片,點選圖片執行相應的動作。 tableview 需要繼承TableViewDataSource(資料來源),TableViewDelegate(觸屏事件處理),同時實現其虛擬函式。 程式碼如下: 標頭檔案TableViewTe

baidu地圖實現點連線渲染

off utf ntc ack -type navig center div tex <script type="text/javascript"> var points = [ {"Lng":120.17787645967861,"Lat":30.25

初涉RxAndroid結合Glide實現圖片載入操作

roc mco avr spl asc 生命周期 png ret track 轉載請註明出處:王亟亟的大牛之路 本來周末就想發了然後各種拖拉就沒有然後了,那麽就今天早上寫吧,廢話不多開始正題 什麽是RxJava或者RxAndroid我就不多廢話了,理

Python3.x實現任務(進程)

並發 引用 target 函數 color 日期 ctime strftime span Python3.x:實現多任務(多進程) # python3 # author lizm # datetime 2018-02-13 16:00:00 # -*- coding: u

【練習】字典的循環遍歷實現層級節點存取

輸入 lose 功能 print path input 內存地址 sleep pat 關鍵點:字典、列表、集合等可變類型,若將一個可變類型賦給變量A和B,通過B改變了該可變類型內部的元素,指向該可變類型內存地址的變量A的值一樣會跟著改變(因A、B同時指向了一個內存地址)

Spring Data JPA 二實現表關聯分頁查詢

最近在對JPA的使用過程中發現對於單表的操作很是方便,但是當設計到多表聯查的時候就需要有一些特殊的操作了。 專案中有一個場景是後臺需要做一個分頁的列表查詢,所需要的資料分散在兩張表中,如果是用mybatis的話直接定義resultMap,然後手寫SQL就可以了。而在JPA中就需要用到JPQL

Spring Data JPA 一實現表關聯查詢

多表查詢在spring data jpa中有兩種實現方式,第一種是利用hibernate的級聯查詢來實現,第二種是建立一個結果集的介面來接收連表查詢後的結果,這裡介紹第二種方式。 一、一對一對映 實體 UserInfo :使用者。 實體 Address:家庭住址。 這裡通過外來鍵的方

前端H5實現圖片上傳並預覽

多檔案上傳並預覽 利用input 的type='file" 可以實現檔案的上傳,不過只支援單個檔案上傳。只有給input加上multiple屬性才能實現多個檔案同時上傳。 好了,下面我們來實現一個簡單的多圖片上傳並預覽的例子 <div class="input-file-box

Gradle基礎6:工程構建

Maven中通過使用module來實現多模組的組合,在Gradle中可以類似通過多project進行聚合來實現,這篇文章主要介紹一下具體的使用方式。 多工程結構 建立如下所示3層結構 每個project下均有如下四個任務: 事前準備 在前文的示例基礎上

thinkphp5 結合plupload 實現圖片的上傳

PHP頁面 <?php namespace app\index\controller; use think\Controller; use think\Db; class Upload extends Controller{ /* t

H5實現圖片預覽上傳,可點選可拖拽控制元件介紹

在做圖片上傳時發現一個蠻好用的控制元件,支援多張圖片同時上傳,可以點選選擇圖片,也可以將圖片拖拽到上傳框直接上傳,方便,好用,介面也簡單,基本可以直接放到專案裡使用。 先看看他的樣式: 選擇圖片後

TP5.0整合webuploader實現圖片上傳功能

//**其實這一段js就是upload.js粘過來的,改成自己的路徑** var imgurl = new Array();//這個是自己新增的,用於把多張圖片的路徑放到這個jQuery陣列中然後賦值到表單提交 (function( $ ){ // 當domReady的時候開始

KindEditor實現圖片上傳

KindEditor的檔案上傳外掛:KindEditor 4.x 文件具體實現步驟demo:1.建立demo.jsp檔案,引入kindeditor的js檔案等,定義上傳檔案按鈕,這是一個div片段。<%@ page language="java" contentType

webuploader結合SpringMVC實現圖片上傳(附原始碼)

本案例實現多圖片上傳並且可以在前端預覽圖片,後端使用SpringMVC框架接收檔案,文章最後附原始碼。 一、效果 ![這裡寫圖片描述](https://img-blog.csdn.net/2018082816114114?watermark/2/text/aH

前端實現圖片上傳檢視功能(帶UI實現

由於業務需求,需要實現多圖片的上傳,並且能夠實時檢視使用者上傳的圖片列表。因此從網上找了一個不錯的外掛,並和bootstrap UI進行的相容。基本能夠滿足需求。下面就是我的實現過程(PS:本人前端了解不太深,所以基本是實現了功能… UI沒有太多考慮…)

JQuery.autocomplete擴充套件功能實現列自動提示

     最近做一個專案,用到了JQuery的自動補全函式,但預設的是隻顯示一列資料,所以就略加修改,拿出來獻醜了。    下面這個是預設呼叫本地資料:          $("#tags").autocomplete(["c++","java", "php", "col

Rxjava+Retrofit實現圖片上傳

1、前言 專案需求:要求實現多張圖片上傳,並攜帶其他屬性值。 專案使用框架:Rxjava+Retrofit+Okhttp。 先附上大神寫的關於Retrofit的詳細用法,本文所寫以此文為基礎:Retrofit詳解。 2、後臺介面 分析後臺介

使用ueditor實現圖片上傳案例——Dao層(BaseDao)

package org.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet

利用FileReader實現圖片上傳瀏覽重點記錄

FileReader用Base64對檔案流進行編碼var files = document.getElementById("file").files;    if (files.length < 5) {            for (var i = 0; i <

Asp.Net Core 2.1 WebAPI 通過IFormFileCollection實現圖片上傳

背景 最近在學習 ASP.Net Core 2.1 WebAPI, 在做一個基於 Xamarin.Forms 3.1 App和 WebAPI 後端的小專案,其中有個功能要從手機端選擇多張圖片並且上傳到部署在Azure App Service上的Web