cocos2d-x ui::ScrollView和ScrollView的使用

最近做項目發現個有趣的東西:ScrollView ,這是一個滾動窗口,之所以說有趣是因爲發現有兩個ScrollView;下面來簡單介紹下這兩個的用法和不同。


1、cocos2d::ui::ScrollView

#include <ui/CocosGUI.h>

auto scrollView = cocos2d::ui::ScrollView::create();
scrollView->setPosition(cocos2d::Point());
scrollView->setDirection(cocos2d::ui::ScrollView::Direction::HORIZONTAL);//方向
scrollView->setScrollBarEnabled(false);//是否顯示滾動條
scrollView->setContentSize(cocos2d::Size());//設置窗口大小  
scrollView->setBackGroundColor(cocos2d::Color3B &color);//設置背景顏色
scrollView->setInnerContainerSize(cocos2d::Size());//設置內容大小
scrollView->addEventListener(CC_CALLBACK_1(,));//設置監聽事件
scrollView->addTouchEventListener()//觸摸監聽
scrollView->addClickEventListener()//點擊監聽

2ScrollView

ScrollView所在的Scene需繼承ScrollViewDelegate,並且實現兩個委託方法

    virtual void scrollViewDidScroll(ScrollView* view);//滾動時響應
    virtual void scrollViewDidZoom(ScrollView* view);)//縮放時響應

初始化
ScrollView* scrollView = ScrollView::create();
scrollView->setPosition(Vec2(0,112));
scrollView->setViewSize(cocos2d::Size(visibleSize.width,visibleSize.height- 112 - 128));//設置窗口大小
scrollView->setContentSize(cocos2d::Size(2988,visibleSize.height- 112 - 128));// 設置內容大小(這裏需要注意,這裏的設置內容大小函數和上面的設置窗口大小定義的一樣的名稱,容易混淆)
scrollView->setDirection(cocos2d::extension::ScrollView::Direction::HORIZONTAL);//設置方向
scrollView->setDelegate(this);//設置委託


上面的兩個方法ScrollView的定義基本就完成了。還有一些方法,比如滾動到哪裏,動畫,直接去找set或者get方法就好,憑函數名稱基本就可以知道需要用哪個。我所能想到的區別就是,一個是事件是封裝好的,只需要在委託函數裏添加事件的實現就好,另一個是自己添加監聽,貌似更具靈活性。

還有一個不同,上面的可以直接設置背景顏色,後者需給它添加一個Layer當背景,當然也許是我沒有找到。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章