cocos2dx+lua学习笔记:UIPageView的使用

news2024/9/23 9:31:07
前言
本篇在讲什么

本篇简单介绍Lua篇cocos2dx中UIPageView的相关内容
仅介绍简单的应用,仅供参考

本篇适合什么

适合初学Cocos2dX的小白
适合想要在Cocos2dx-lua中使用UIPageView的人

本篇需要什么

Lua语法有简单认知
Cocos2dx-Lua有简单认知
Cocos2dx-Lua 3.15的开发环境

本篇的特色

具有全流程的图文教学
重实践,轻理论,快速上手
提供全流程的源码内容


★提高阅读体验★

👉 ♠ 一级标题 👈

👉 ♥ 二级标题 👈

👉 ♣ 三级标题 👈

👉 ♦ 四级标题 👈


目录

  • ♠ 简介
    • ♥ 翻页原理
  • ♠ 应用
    • ♥ 横向翻页容器
  • ♠ 常用功能
    • ♥ 插入页面
    • ♥ 删除页面
    • ♥ 自动翻页
  • ♠ 推送
  • ♠ 结语


♠ 简介

UIPageView是继承自ListView的容器,ListView又继承自ScrollView,其本质是在ScrollView基础上拓展的,可供开发者做水平或垂直方向的翻页容器


♥ 翻页原理

我们在上一章节学习了和UIScrollView相关的内容,在ScrollView中我们知道存在一个叫自动滚动的内容,如下述代码所示, PageView翻页的原理就更简单了,其实就是计算好页面的宽度或长度,翻页的时候给一个自动滚动的距离和时间

// ScrollView中的调用
void ScrollView::startAutoScrollToDestination(const Vec2& destination, float timeInSec, bool attenuated)
{
    startAutoScroll(destination - _innerContainer->getPosition(), timeInSec, attenuated);
}


// PageView中的调用
void PageView::scrollToItem(ssize_t itemIndex, float time)
{
    if (_innerContainerDoLayoutDirty) {
        this->forceDoLayout();
    }
    ListView::scrollToItem(itemIndex, Vec2::ANCHOR_MIDDLE, Vec2::ANCHOR_MIDDLE, time >= 0 ? time : _scrollTime);
}

♠ 应用

以下我们将通过几个简单的代码示例,来展示PageView的功能


♥ 横向翻页容器

我们通过以下代码创建一个横向滚动列表,效果如下所示

local pv            = ccui.PageView:create()
local size          = cc.size(500, 500)

pv:setContentSize(size)
pv:setAnchorPoint(0.5, 0.5)
pv:setDirection(ccui.PageViewDirection.HORIZONTAL)

for i=1,5 do
    local layout = ccui.Layout:create()
    local sp = cc.Sprite:create("dlrb.png")
    layout:addChild(sp)
    sp:setPosition(cc.p(250,250))
    pv:insertPage(layout, i-1)
end

pv:setPosition(640,360)
self:addChild(pv)

在这里插入图片描述

要点1:通过ccui.PageView:create()来创建一个翻页列表的实例

要点2:通过setContentSize来设置翻页显示区域

要点3:通过setDirection来设置翻页方向,参数有两个

  • ccui.PageViewDirection.NONE :不翻

  • ccui.PageViewDirection.HORIZONTAL :水平翻页参数

  • ccui.PageViewDirection.VERTICAL :垂直翻页参数

  • ccui.PageViewDirection.BOTH :水平垂直都能翻


♠ 常用功能

我们已经可以创建最基础的滚动列表了,面介绍几个常用的功能


♥ 插入页面

对于插入页面提供了两个接口

pv:addPage(layout)

pv:insertPage(layout, 0)

要点1:通过addPage来插入页面,页面放在最后面

要点2:通过insertPage来插入页面,可以指定页面插入的位置,从0开始

要点3:所有插入的子页必须是继承自Widget的UI组件


♥ 删除页面

pv:removePage(layout)

pv:removePageAtIndex(layout, 0)

pv:removeAllPages();

要点1:通过removePage直接删除子页

要点2:通过removePageAtIndex来根据下标删除子页

要点3:通过removeAllPages删除所有子页


♥ 自动翻页

和滚动页面类似,翻页容器提供了自动翻页的功能

pv:scrollToPage(1)

pv:scrollToPage(1, 0.5)

要点1:通过scrollToPage翻到指定页面,可以设置翻动时间

在这里插入图片描述


♠ 推送

  • Github
https://github.com/KingSun5

♠ 结语

还有不少其他额外功能,如果感兴趣,自己去扒拉一下吧,若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。

👉 本文属于原创文章,转载请评论留言,并在转载文章头部著名作者出处👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/383182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hostease美国Linux主机方案租用推荐

美国Linux主机市场在全球市场上具有显著的优势,这使得美国的主机提供商可以提供高性能、高可靠性和高安全性的主机方案,同时为用户提供广泛的选择和灵活性。这些优势也使得美国成为全球最大的主机市场之一。本文将介绍Hostease的美国Linux主机方案租用推…

22《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》中文分享

​《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》 本人能力有限,如果错误欢迎批评指正。 第五章:Folding and Aggregation Are Cooperative Transitions (折叠和聚合是同时进行的) -蛋白质折叠的协同作…

基于C/C++获取电脑网卡的IP地址信息

目录 前言 一、网卡是什么? 二、实现访问网卡信息 1.引入库及相关的头文件 2.操作网卡数据 3. 完整代码实现 4.结果验证 总结 前言 简单示例如何在windows下使用c/c代码实现 ipconfig/all 指令 提示:以下是本篇文章正文内容,下面案例可供参考…

【Python】Python项目打包发布(四)(基于Nuitka打包PySide6项目)

Python项目打包发布汇总 【Python】Python项目打包发布(一)(基于Pyinstaller打包多目录项目) 【Python】Python项目打包发布(二)(基于Pyinstaller打包PyWebIO项目) 【Python】Pytho…

【机器学习】决策树(理论)

决策树(理论) 目录一、何为决策树1、决策树的组成2、决策树的构建二、熵1、熵的作用2、熵的定义3、熵的计算4、条件熵的引入5、条件熵的计算三、划分选择1、信息增益( ID3 算法选用的评估标准)2、信息增益率( C4.5 算法…

使用ARM嵌入式工控机构建Node-RED应用的优势

Node-RED是一个基于Node.js的开源可视化流程编程环境,可以轻松构建自定义应用程序,通过连接简单的节点来完成复杂的任务。Node-RED提供了一种简单的方法,可以快速连接到外部服务,从而实现物联网应用的开发。 Node-RED的优点包括&…

工作实战之微服务认证实现

目录 前言 一、钻石段位springsecurityspringsessionredis缓存 1.yml配置将session存储到redis中,实现session共享 2.maven引入 3.原理分析 a.SessionRepositoryFilter拦截进行session存储介质的选择,可以是jdk缓存,或者数据库,也…

Leedcode 二分查找 理解1

一个up的理解 一、二分查找基础例题 力扣https://leetcode.cn/problems/binary-search/ 二、二分查找模板问题 带搜索区间分为3个部分: 1、[mid],直接返回 2、[left,mid-1],设置边界right mid - 1 3、[mid1,right]&#x…

【相关分析-高阶绘图】MATLAB实现皮尔逊相关分析-散点直方图

虽然皮尔逊相关分析很常见,但如何更好的展现相关性、散点分布、柱状分布,以提升研究结果的美感和冲击感呢?本文拟通过MATLAB绘制包含散点分布、柱状分布、线性展示的散点直方图,有助于审稿人眼前一亮。 1、Pearson相关系数原理 Pearson相关系数(Pearson Correlation Co…

Zookeeper3.5.7版本——单机部署(linux环境-centos7)

目录一、Zookeeper3.5.7官网下载1.1、官网下载地址1.2、下载步骤二、jdk11安装(Zookeeper需要jdk支持)三、Zookeeper3.5.7安装3.1、安装3.2、配置修改3.3、操作 Zookeeper四、配置文件参数解读一、Zookeeper3.5.7官网下载 1.1、官网下载地址 官网下载地…

基本面向对象编程-计算机基本功能实现_

《C/S项目实训》实验报告 实验名称: 基本面向对象编程-计算机基本功能实现_ 一、实验目的 通过综合实践项目,理解Java 程序设计是如何体现面向对象编程基本思想,掌握OOP方法,掌握事件触发、消息响应机制。进一步巩固面向对…

T_SQL和SQL的区别

一. SQL Server和T-SQL的区别(⭐T-SQL 包含了 SQL)SQL Server是结构化查询语言,是目前关系型数据库管理系统中使用最广泛的查询语言T-SQL是标准SQL语言的扩展,是SQL Server的核心,在SQL的的基础上添加了变量,运算符,函数和流程控制等,Microso…

AutoCAD通过handle id选择实体

获得实体的handle id。注意是handle id 不是id,方法有2种:方法(a):通过ArxDeg插件(ObjectARX附带的源码编译得到:\samples\database\ARXDBG)查找:此handle id本来就是16进…

【知识图谱论文】知识图谱嵌入的对比学习

文章题目: KGE-CL: Contrastive Learning of Knowledge Graph Embeddings时间:2021 摘要 学习知识图的嵌入在人工智能中至关重要,可以使各种下游应用受益,如推荐和问答。近年来,人们对知识图嵌入进行了大量的研究。然…

linux下安装java

文章目录linux下安装java1.下载对应的linux JDK包,这里使用jdk82.上传 jdk-8-linux-x64.tar.gz 到linux3.解压下载的jdk4.编辑配置文件,配置环境变量5.刷新配置文件6.最后检查JDK安装是否成功linux下安装java 阿里云弄的服务器centos7没有安装java&…

显示接口测试

背景需求两个显示器连接到一台PC,期望每台显示器可以单独显示,在一台显示器显示时,另外一台显示器同PC的连接断开,即系统下查看到连接状态为disconnected。同时在显示器上图形化显示当前显示器编号。如下图,期望当显示…

【pygame游戏】Python实现蔡徐坤大战篮球游戏【附源码】

前言 话说在前面,我不是小黑子~😏 本文章纯属技术交流~娱乐 前几天我获得了一个坤坤打篮球的游戏,也给大家分享一下吧~ 好吧,其实并不是这样的游戏,往下慢慢看吧。 准备工作 开发环境 Python版本:3.7.8 …

PhotoShop基础使用

49:图片分类 1:像素图 特点:放大后可见,右一个个色块(像素)组合而成。 优点:容量小,纯天然 JPG、JPEG、png、GIF 2:矢量图 面向对象图像 绘图图像 特点:不…

动态网站开发讲课笔记03:HTTP协议

文章目录零、本节学习目标一、HTTP概述(一)HTTP的概念1、HTTP的概念2、HTTP协议的特点(1)C/S模式(2)简单快速(3)灵活(4)无状态(二)HTT…

VS Code 配置 Python + 配置 Flask 环境及其虚拟环境

本文目录一、Python的下载二、拓展库安装三、编写案例运行调试四、部分使用优化五、配置 Flask 环境总结:一些小技巧1、找到原来安装过的python路径位置一、Python的下载 这里推荐使用国内源进行下载,国外源一般都比较慢。 跳转链接:https:…