ScrollView使用简介

https://www.cnblogs.com/guangyun/p/8991386.html

/**

  • ScrollView的滚动方向
    */
    enum class Direction
    {
    NONE,
    VERTICAL,
    HORIZONTAL,
    BOTH
    };

/**

  • ScrollView的滚动事件类型
    */
    enum class EventType
    {
    SCROLL_TO_TOP, // 向上滚动
    SCROLL_TO_BOTTOM, // 向下滚动
    SCROLL_TO_LEFT, // 向左滚动
    SCROLL_TO_RIGHT, // 向右滚动
    SCROLLING, // 滚动中
    BOUNCE_TOP, // 向上反弹
    BOUNCE_BOTTOM, // 向下反弹
    BOUNCE_LEFT, // 向左反弹
    BOUNCE_RIGHT, // 向右反弹
    CONTAINER_MOVED // 容器移动
    };

/**

  • 构造函数
  • @js ctor
  • @lua new
    */
    ScrollView();

/**

  • 创建一个空ScrollView
  • @return 返回一个ScrollView
    /
    static ScrollView
    create();

/**

  • 设置ScrollView的滚动方向
  • @param dir 查看枚举 Direction
    */
    virtual void setDirection(Direction dir);

/**

  • 获取ScrollView的滚动方向
  • @return 返回Direction枚举
    */
    Direction getDirection()const;

/**

  • 获取ScrollView内的基容器,是一个ScrollView的子视图(继承关系)
  • @return 返回ScrollView内的子容器
    /
    Layout
    getInnerContainer()const;

/**

  • 将ScrollView滚动到底部
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToBottom(float timeInSec, bool attenuated);

/**

  • 将ScrollView滚动到顶部
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToTop(float timeInSec, bool attenuated);

/**

  • 将ScrollView滚动到左侧
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToLeft(float timeInSec, bool attenuated);

/**

  • 将ScrollView滚动到右侧
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToRight(float timeInSec, bool attenuated);

/**

  • 将ScrollView滚动到顶部左侧
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToTopLeft(float timeInSec, bool attenuated);

/**

  • 将ScrollView滚动到顶部右侧
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToTopRight(float timeInSec, bool attenuated);

/**

  • 将ScrollView滚动到底部左侧
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToBottomLeft(float timeInSec, bool attenuated);

/**

  • 将ScrollView滚动到底部右侧
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToBottomRight(float timeInSec, bool attenuated);

/**

  • 将ScrollView以垂直方向滚动到指定百分比位置
  • @param percent 百分值 0-100
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToPercentVertical(float percent, float timeInSec, bool attenuated);

/**

  • 将ScrollView以水平方向滚动到指定百分比位置
  • @param percent 百分值 0-100
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToPercentHorizontal(float percent, float timeInSec, bool attenuated);

/**

  • 将ScrollView以水平和垂直方向滚动到指定百分比位置
  • @param percent 百分值 0-100
  • @param timeInSec 滚动时长
  • @param attenuated 是否进行减速
    */
    void scrollToPercentBothDirection(const Vec2& percent, float timeInSec, bool attenuated);

/**

  • 跳到ScrollView底部
    */
    virtual void jumpToBottom();

/**

  • 跳到ScrollView顶部
    */
    virtual void jumpToTop();

/**

  • 跳到ScrollView左侧
    */
    virtual void jumpToLeft();

/**

  • 跳到ScrollView右侧
    */
    virtual void jumpToRight();

/**

  • 跳到ScrollView左上
    */
    virtual void jumpToTopLeft();

/**

  • 跳到ScrollView右上
    */
    virtual void jumpToTopRight();

/**

  • 跳到ScrollView左下
    */
    virtual void jumpToBottomLeft();

/**

  • 跳到ScrollView右下
    */
    virtual void jumpToBottomRight();

/**

  • 以垂直方向跳到ScrollView指定的百分比位置
  • @param percent 百分值 0-100
    */
    virtual void jumpToPercentVertical(float percent);

/**

  • 以水平方向跳到ScrollView指定的百分比位置
  • @param percent 百分值 0-100
    */
    virtual void jumpToPercentHorizontal(float percent);

/**

  • 以水平和垂直方向跳到ScrollView指定的百分比位置
  • @param percent 百分值 0-100
    */
    virtual void jumpToPercentBothDirection(const Vec2& percent);

/**

  • 设置ScrollView的滚动范围大小
  • @param size 滚动范围
    */
    void setInnerContainerSize(const Size &size);

/**

  • 获取ScrollView的滚动范围大小
  • @return Size 滚动范围
    */
    const Size& getInnerContainerSize() const;

/**

  • 设置ScrollView的滚动位置
  • @param pos 坐标
    */
    void setInnerContainerPosition(const Vec2 &pos);

/**

  • 获取ScrollView的滚动位置
  • @return Vec2 坐标
    */
    const Vec2 getInnerContainerPosition() const;

/**

  • ScrollView即将滚动时调用的回调
    /
    typedef std::function<void(Ref
    , EventType)> ccScrollViewCallback;

/**

  • 添加ScrollView的滚动事件回调
  • @param callback 查看ccScrollViewCallback
    */
    virtual void addEventListener(const ccScrollViewCallback& callback);

/**

  • 添加子节点
  • @param child 子节点
  • @param localZOrder 层级树中的位置
  • @param tag 节点tag值
  • @param name 节点名
    /
    virtual void addChild(Node
    child)override;
    virtual void addChild(Node * child, int localZOrder)override;
    virtual void addChild(Node* child, int localZOrder, int tag) override;
    virtual void addChild(Node* child, int localZOrder, const std::string &name) override;

/**

  • 移除所有子节点
    */
    virtual void removeAllChildren() override;

/**

  • 移除所有子节点并清除动作及回调函数
    */
    virtual void removeAllChildrenWithCleanup(bool cleanup) override;

/**

  • 移除指定节点
  • @param child 子节点
  • @param cleaup 是否清除动作及回调函数
    /
    virtual void removeChild(Node
    child, bool cleaup = true) override;

/**

  • 获取子节点
    /
    virtual Vector<Node
    >& getChildren() override;
    virtual const Vector<Node*>& getChildren() const override;

/**

  • 获取所有子节点的总数
    */
    virtual ssize_t getChildrenCount() const override;

/**

  • 通过tag获取子节点
  • @param tag 节点tag值
    */
    virtual Node * getChildByTag(int tag) const override;

/**

  • 通过name获取子节点
  • @param name 节点name值
    /
    virtual Node
    getChildByName(const std::string& name)const override;

/**

  • ScrollView交互事件
    */
    virtual bool onTouchBegan(Touch *touch, Event *unusedEvent) override;
    virtual void onTouchMoved(Touch *touch, Event *unusedEvent) override;
    virtual void onTouchEnded(Touch *touch, Event *unusedEvent) override;
    virtual void onTouchCancelled(Touch *touch, Event *unusedEvent) override;

/**


  • */
    virtual void update(float dt) override;

/**

  • 设置ScrollView回弹效果
  • @param enabled 是否可以回弹
    */
    void setBounceEnabled(bool enabled);

/**

  • 获取ScrollView是否回弹
  • @return 是否可以回弹
    */
    bool isBounceEnabled() const;

/**

  • 设置ScrollView的惯性滚动(即快速拖动后,会继续滚动一段距离并逐渐停下)
  • @param enabled 是否设置惯性滚动
    */
    void setInertiaScrollEnabled(bool enabled);

/**

  • 获取ScrollView是否惯性滚动
  • @return 是否支持惯性滚动
    */
    bool isInertiaScrollEnabled() const;

/**

  • 设置ScrollView是否显示滚动条
  • @param enabled 是否显示滚动条
    */
    void setScrollBarEnabled(bool enabled);

/**

  • 获取ScrollView是否显示滚动条
  • @return 是否显示滚动条
    */
    bool isScrollBarEnabled() const;

/**

  • 从左下角(水平)和右上角(垂直)设置滚动条位置
  • @param positionFromCorner 坐标位置
    */
    void setScrollBarPositionFromCorner(const Vec2& positionFromCorner);

/**

  • 从右上角设置垂直滚动条位置
  • @param positionFromCorner 坐标位置
    */
    void setScrollBarPositionFromCornerForVertical(const Vec2& positionFromCorner);

/**

  • 从右上角获取垂直滚动条的位置
  • @return positionFromCorner 坐标位置
    */
    Vec2 getScrollBarPositionFromCornerForVertical() const;

/**

  • 从左下角设置水平滚动条的位置
  • @param positionFromCorner 坐标位置
    */
    void setScrollBarPositionFromCornerForHorizontal(const Vec2& positionFromCorner);

/**

  • 从右上角获取水平滚动条的位置
  • @return positionFromCorner 坐标位置
    */
    Vec2 getScrollBarPositionFromCornerForHorizontal() const;

/**

  • 设置滚动条的宽度
  • @param width 滚动条的宽度
    */
    void setScrollBarWidth(float width);

/**

  • 获取滚动条的宽度
  • @return 滚动条的宽度
    */
    float getScrollBarWidth() const;

/**

  • 设置滚动条的颜色
  • @param color 滚动条颜色
    */
    void setScrollBarColor(const Color3B& color);

/**

  • 获取滚动条的颜色
  • @return 滚动条颜色
    */
    const Color3B& getScrollBarColor() const;

/**

  • 设置滚动条的透明度
  • @param opacity 透明度 0-100
    */
    void setScrollBarOpacity(GLubyte opacity);

/**

  • 获取滚动条的透明度
  • @return 透明度 0-100
    */
    GLubyte getScrollBarOpacity() const;

/**

  • 设置滚动条自动隐藏状态
  • @param autoHideEnabled 是否自动隐藏
    */
    void setScrollBarAutoHideEnabled(bool autoHideEnabled);

/**

  • 获取滚动条自动隐藏状态
  • @return 是否自动隐藏
    */
    bool isScrollBarAutoHideEnabled() const;

/**

  • 设置滚动条自动隐藏时间
  • @param autoHideTime 自动隐藏的时间
    */
    void setScrollBarAutoHideTime(float autoHideTime);

/**

  • 获取滚动条自动隐藏时间
  • @return 自动隐藏的时间
    */
    float getScrollBarAutoHideTime() const;

enum class Type
{
ABSOLUTE,
VERTICAL,
HORIZONTAL,
RELATIVE
};

/**

  • 设置ScrollView的布局类型
  • @param type 类型枚举(查阅Layout::Type)
    */
    virtual void setLayoutType(Type type) override;

/**

  • 设置ScrollView的布局类型
  • @param type 类型枚举(查阅Layout::Type)
    */
    virtual Type getLayoutType() const override;

/**

  • 获得ScrollView控件描述
    */
    virtual std::string getDescription() const override;

/**

  • @lua NA
    */
    virtual void onEnter() override;

/**

  • 当一个小部件在一个布局中时,你可以调用这个方法来在指定的方向上获得下一个焦点部件。
  • 如果小部件不在布局中,它将自行返回
    *@param direction 在布局中查找下一个重点小部件的方向
    *@param current 当前重点小部件
    @return 布局中的下一个重点小部件
    /
    virtual Widget
    findNextFocusedWidget(FocusDirection direction, Widget
    current) override;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值