从零开始のcocos2dx生活(十)ScrollView

简介

scrollView是在一定可视范围内通过滚动看到更大范围的方法,可视的范围是绑定在滚动视图上的容器。

容器有两个界限,一个是容器偏移,一个是为了回弹设置的延伸的长度。

基础变量

ScrollViewDelegate

设置委托函数实例,继承并重写下面的方法,可以在滚动和缩放时使用回调函数

virtual void scrollViewDidScroll(ScrollView* view) {
   };
virtual void scrollViewDidZoom(ScrollView* view) {
   };
//使用
scrollView->setDelegate(this);   ///<添加委托
virtual void scrollViewDidScroll(ScrollView* view) 
{
   
  /*  */
}

Direction

设置滚动的方向

enum class Direction
    {
   
        NONE = -1,
        HORIZONTAL = 0,
        VERTICAL,
        BOTH
    };

_dragging

是否开始拖动的标志,在onTouchBegan时会设为true,表示开始拖动,在onTouchEnded、onTouchCancelled中设为false

_container

作为scrollView的子节点,存放显示的所有内容,滚动视图的滚动框就是在这个上面进行滚动的。Inset

inset分为_minInset和_maxInset,如果设置了回弹会被设置成偏移边界加上可视范围的20%

_touchMoved

标记正在拖动的标志,在onTouchMoved时被设为true,在onTouchEnded、onTouchCancelled中设为false

_bounceable

回弹,在初始化时默认被设为true,是指在滑动到container的边界之后,会继续滑动一截最后再弹回到边界处的一种效果。

_touchLength

用来计算两个触摸点之间的距离,会换算成缩放的倍数

#方法

create

创建的时候可以将设置好的设置好的container作为参数,将容器绑定到滚动视图中,然后调用initWithViewSize方法来初始化滚动视图

initWithViewSize

初始化时调用

如果没有传入container参数会创建一个

setContentSize

这个方法主要是为了设置容器的大小,同时也刷新了Inset的大小,在调用setContentSize之前,minInset和maxInset都是0,没有被设置,setContentSize会调用updateInset方法,对minInset和maxInset进行了设置,让回弹可以进行,让deaccelerateScrolling可以获得正确的值。

void ScrollView::setContentSize(const Size & size)
{
   
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值