cocos2d-js 控件——UIPageView

UIPageView 公有属性、方法

/**
 * 翻页事件类型
 */
enum class EventType
{
    TURNING
};

/**
 * 触摸方向类型
 */
enum class TouchDirection
{
    LEFT,
    RIGHT,
    UP,
    DOWN
};

/**
 * UIPageView页面翻页事件回调
 */
typedef std::function<void(Ref*, EventType)> ccPageViewCallback;

/**
 * 创建一个UIPageView对象
 *@return UIPageView实例
 */
PageView();
static PageView* create();

/**
 * 设置滚动方向
 * @param direction 滚动方向
 */
virtual void setDirection(Direction direction) override;

/**
 * 往UIPageView中添加界面
 * @param page 继承于Widget的实例
 */
void addPage(Widget* page);

/**
 * 往UIPageView中的指定索引处插入界面
 * @param page  继承于Widget的实例
 * @param idx   索引
 */
void insertPage(Widget* page, int idx);

/**
 * 移除指定页面
 * @param page 指定的Widget实例
 */
void removePage(Widget* page);

/**
 * 移除指定页面
 * @param index 指定索引
 */
void removePageAtIndex(ssize_t index);

/**
 * 移除所有页面
 */
void removeAllPages();

/**
 * 滚动至某一页
 * @param idx       指定索引
 * @param itemIndex 指定索引
 */
void scrollToPage(ssize_t idx);
void scrollToItem(ssize_t itemIndex);

/**
 * 获取当前页面索引
 * @return 当前页面索引
 */
ssize_t getCurrentPageIndex() const { return _currentPageIndex; }

/**
 * 跳转到指定的页面
 * @param index 指定索引
 */
void setCurrentPageIndex(ssize_t index);

/**
 * 获取PageView中的所有页面
 * 已弃用,使用”Vector<Widget*>& ListView::getItems()“
 * @return 所有界面
 */
CC_DEPRECATED_ATTRIBUTE Vector<Layout*>& getPages();

/**
 * 根据索引获取指定页面
 * 已弃用,使用“Widget* ListView::getItem(index)”
 * @param index 索引
 * @return Layout页面
 */
CC_DEPRECATED_ATTRIBUTE Layout* getPage(ssize_t index);

/**
 * 添加一个页面回调到PageView,当一个页面翻动时,回调将被调用
 * @param callback 事件回调
 */
void addEventListener(const ccPageViewCallback& callback);

/**
 * 开启页面指示器
 * @param enabled 如果启用页面指示则为true,否则为false
 */
void setIndicatorEnabled(bool enabled);

/**
 * 获取是否开启了页面指示器
 * @return 如果启用页面指示则为true,否则为false
 */
bool getIndicatorEnabled() const { return _indicator != nullptr; }

/**
 * 使用锚点设置页面指示器的位置。
 * @param positionAsAnchorPoint 锚点
 */
void setIndicatorPositionAsAnchorPoint(const Vec2& positionAsAnchorPoint);

/**
 * 获取页面指示器的锚点
 * @return 锚点
 */
const Vec2& getIndicatorPositionAsAnchorPoint() const;

/**
 * 设置页面指示器的位置
 * @param position 坐标
 */
void setIndicatorPosition(const Vec2& position);

/**
 * 获取页面指示器的位置
 * @return 坐标
 */
const Vec2& getIndicatorPosition() const;

/**
 * 设置页面指示器的索引节点之间的间距
 * @param spaceBetweenIndexNodes 间距值
 */
void setIndicatorSpaceBetweenIndexNodes(float spaceBetweenIndexNodes);

/**
 * 获取页面指示器的索引节点之间的间距
 * @return 间距值
 */
float getIndicatorSpaceBetweenIndexNodes() const;

/**
 * 设置页面指示器的索引节点的颜色
 * @param spaceBetweenIndexNodes 颜色,例如:“cc.color(0, 0, 0)”
 */
void setIndicatorSelectedIndexColor(const Color3B& color);

/**
 * 获取页面指示器的索引节点的颜色
 * @return 颜色
 */
const Color3B& getIndicatorSelectedIndexColor() const;

UIPageView示例

// 分页控件初始化
var pageView = new ccui.PageView();
pageView.setContentSize(1099, 609);
pageView.setAnchorPoint(0.5, 0.5);
pageView.setPosition(640, 360);

// 启动分页指示器
pageView.setIndicatorEnabled(true);

// 设置分页指示器索引控件之间的间距
pageView.setIndicatorSpaceBetweenIndexNodes(50);

// 滚动方向
pageView.setDirection(ccui.ScrollView.DIR_VERTICAL);

this.addChild(pageView);

// 添加分页
for (var i = 0; i < 4; i ++) {
    // 容器
    var contain_view = new ccui.Layout();
    contain_view.setSize(pageView.width, pageView.height);
    contain_view.setBackGroundImageScale9Enabled(true);
    contain_view.setBackGroundImage(game.platform.public + "Guide/guide_" + i + ".png");

    pageView.addPage(contain_view);
}

// UIPageView翻页事件回调
pageView.addEventListener(function(sender,event){
    if (type == ccui.PageView.EVENT_TURNING) {
        cc.log("翻页事件回调");
    }
},this);

// 获取每页的内容大小
var contentHeight = pageView.getInnerContainerSize().height;

// UIPageView交互事件回调
pageView.addTouchEventListener(function (sender, type) {
    // 实时获取页码
    cc.log(sender.getCurrentPageIndex());
}.bind(this));

// 滚动至第四页
pageView.scrollToItem(3);
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值